通过将DateConverter
转换为String
的方法,我org.joda.time.DateTime
非常简单
public class DateConverter {
private static final DateTimeFormatter DATE_TIME_FORMATTER =
DateTimeFormat
.forPattern( "yyyy-MM-dd HH:mm:ss Z")
.withZone( DateTimeZone.forID("Europe/Warsaw") );
public static DateTime toDateTime(String value) {
return DateTime.parse(value, DATE_TIME_FORMATTER);
}
}
现在进行测试,
String okDate = "2018-10-28 00:00:00 +0200";
String wrongDate = "2018-10-29 00:00:00 +0200";
System.out.println("Ok result: " + DateConverter.toDateTime(okDate));
System.out.println("Wrong result: " + DateConverter.toDateTime(wrongDate));
哪个让我输出:
好的结果:2018-10-28T00:00:00.000 + 02:00
错误的结果: 2018-10-28T23:00:00.000 + 01:00
直到月底的所有天,例如29日,30日,31日。休息的日子还可以。有人可以帮助我了解这里的情况吗?我在哪里弄错了?
答案 0 :(得分:2)
嗯。您在该日期指定了夏令时更改的时区,因此可以正常工作。
如果要输入本地日期时间,则不希望Z成为您的格式。