Ни ваш ожидаемый, ни ваш наблюдаемый результат не имеют смещения UT C. Поэтому я думаю, что вы, вероятно, хотите LocalDateTime
, а не DateTime
. Если это так, вот один из способов получить ожидаемый результат, указав 00
в качестве часа дня (а не 01
, как заметил JUnit).
private static final String DATE_TIME_FORMAT = "ddMMyyyy";
public static void main(String[] args) {
DateTimeFormatter formatter = DateTimeFormat.forPattern(DATE_TIME_FORMAT);
String text = "13092019";
LocalDateTime ldt = LocalDate.parse(text, formatter)
.toLocalDateTime(LocalTime.MIDNIGHT);
System.out.println(ldt);
}
Вывод из программы:
2019-09-13T00: 00: 00.000
[0]
и [1]
- это просто способ JUnit подчеркнуть разницу между двумя результатами. Все до и после [
… ]
одинаково в ожидаемом и фактическом значении. Ни ожидаемое, ни фактическое значение не содержали [
или ]
при запуске теста. JUnit добавил их для акцента.
Я просто не могу понять, почему и как генерируются две разные даты для 13092019
Я тоже не могу без Воспроизводимый пример. Scorpioo590, вероятно, правильно, что это проблема часового пояса. Скорее всего, вы также получите другие результаты для других дат. Казалось бы, дата, использованная в вашем прогоне JUnit, была 1970-01-01 (день эпохи)?