java - JodaTime 月底换算

标签 java jodatime date-conversion

我得到了非常直接的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));

这给我留下了输出:

Ok result: 2018-10-28T00:00:00.000+02:00
Wrong result: 2018-10-28T23:00:00.000+01:00

直到月底的所有日子,29日、30日、31日都像28日一样。剩下的日子还好。有人可以帮助我了解这里发生了什么吗?我犯的错误在哪里?

最佳答案

呃。您指定的时区在该日期发生了夏令时更改,因此可以按预期工作。

如果您想输入本地日期时间,您不希望格式中包含 Z。

关于java - JodaTime 月底换算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52592514/

相关文章:

java - 使用 JodaTime 的 TimeString 的 FormatterPattern

java - 将年份字段的日期转换为两位数时出错

javascript - AngularJS:如何使用angular从json文件中读取数据

java - Java与C#到DateTime的长转换

java - Joda 日期时间转换区域设置

java - 通信链路故障 - 从服务器成功接收到的最后一个数据包是

java - Firebase Firestore 分布式计数器文档代码崩溃

java - 未解析类 'MyFirebaseMessagingService' Android Studio

java - 在 JodaTime 中将日期转换为其他格式

java - Install4j:如何使用时间戳启用日志记录