現在の時刻をミリ秒単位で指定し、12時間形式で保存したいのですが、このコードでは24時間形式の時間を取得しています。
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy HH:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
誰もが希望する結果を得るための修正を提案できますか?
HH
をhh
に変更します
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat(
"dd/MM/yyyy hh:mm:ss a");
dateforrow = dateFormat.format(cal1.getTime());
dd/mm/yyyy
-は、monthではなくminutesを提供することに注意してください。
Letter | Date or Time Component | Presentation | Examples
---------------------------------------------------------
H | Hour in day (0-23) | Number | 0
h | Hour in am/pm (1-12) | Number | 12
私もこれに苦労して再会します。 H対h、24時間対12時間!
こんにちは、私はうまく動作する以下のコードをテストしました:
long timeInMillis = System.currentTimeMillis();
Calendar cal1 = Calendar.getInstance();
cal1.setTimeInMillis(timeInMillis);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a");
dateFormat.format(cal1.getTime());
はい、HHの代わりにhhを使用するだけで問題が解決することを確認しました。
これから変更:
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm aa");
これに:
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm aa");
AM/PMの保存と処理に煩わされたくない場合は、HHを使用して時間を保存できます。次に、取得するときにhhを使用します。
このように試すことができます
Calendar c= Calendar.getInstance();
SimpleDateFormat sdf= new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a");
String str=sdf.format(c.getTime());
コードに従うだけ
public static String getFormatedDate(String strDate,StringsourceFormate,
String destinyFormate) {
SimpleDateFormat df;
df = new SimpleDateFormat(sourceFormate);
Date date = null;
try {
date = df.parse(strDate);
} catch (ParseException e) {
e.printStackTrace();
}
df = new SimpleDateFormat(destinyFormate);
return df.format(date);
}
そして、そのような関数に値を渡します、
getFormatedDate("21:30:00", "HH:mm", "hh:mm aa");
または、このドキュメントを確認してください SimpleDateFormat StringsourceFormateおよびdestinyFormateの場合。
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/mm/yyyy hh:mm:ss a");
hh
の代わりにHH
を使用します