ミリ秒データ1473080981L
を提供しています。日付はSeptember 5, 2016 9:50 PM
です。私はユニットテストをしていて、これは初めて遊んでいたのですJUnit。Joda DateTimeでミリ秒単位で正しく日付が設定されない
DateTime dateTime = new DateTime();
dateTime.withMillis(1473080981L)
それはまだ正しい日付を返しますが、現在、これを書いている時点で、それは今、夕方10:00 PMで、このメソッドの呼び出しが生成します。私は、これまでに気づいたことは、私が呼ぶたびにということですSeptember 5, 2016 10:00 PM
。 DateTimeは私がそれを設定した時間を尊重しませんでした。
これは正しい動作ですか?あらかじめ定義された選択日時を設定してDateTimeをインスタンス化できる方法はありますか?ここで
は私のユニットテストである(それは無意味であることをご負担ください、私はユニットテストを勉強しています):
public static String format(@NonNull DateTime dateTime, String validFormat) {
org.joda.time.format.DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern(validFormat);
return dateTimeFormat.print(dateTime);
}
public static String format(long dateToMillis, String validFormat) {
org.joda.time.format.DateTimeFormatter dateTimeFormat = DateTimeFormat.forPattern(validFormat);
DateTime dateTime = new DateTime();
dateTime.withMillis(dateToMillis);
return dateTimeFormat.print(dateTime);
}
ありがとう:
String testDate = "September 5, 2016 9:50 PM"; // MMMM dd, yyyy K:mm a
String testDateResult1 = DateTimeFormatter.format(dateTime, DateTimeFormatter.FORMAT_DEFAULT_DATE_TIME_12);
String testDateResult2 = DateTimeFormatter.format(thisDay , DateTimeFormatter.FORMAT_DEFAULT_DATE_TIME_12);
assertTrue(testDate.compareTo(testDateResult1) == 0);
assertTrue(testDate.compareTo(testDateResult2) == 0);
マイてDateTimeFormatterは次のようになります!