までのミリ秒データを提供しています1473080981L
: September 5, 2016 9:50 PM
. 私は単体テストを行っていますが、JUnitをいじるのは初めてでした。これまでに気付いたのは、呼び出すたびに次のことです。
DateTime dateTime = new DateTime();
dateTime.withMillis(1473080981L)
それでも正しい日付が返されますが、現在、この記事の執筆時点では、現在は夜の午後 10 時であり、このメソッド呼び出しはSeptember 5, 2016 10:00 PM
. DateTimeは、設定した時間を尊重しませんでした。
これは正しい動作ですか?独自の定義済みの選択された日時を設定して、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は次のようになります。
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);
}
ありがとう!