Joda DateTime中的月份错误

Joda DateTime中的月份错误,datetime,Datetime,当我运行以下代码(Java)时: 我总是得到这样的结果:2015-01-27T02:47:08.000+02:00 正如你所看到的,月份和时间是不正确的 有什么建议吗? 感谢一年中的月份用大写字母M以及一天中的小时H书写 试一试 一年中的月份用大写字母M以及一天中的小时H书写 试一试 tl;博士 2015-03-27T02:47:08 java.time 您的输入字符串似乎特别奇怪。小时没有填充零,但秒有填充零?奇怪,但是可以使用现代java.time类对其进行解析 该项目现在正在进行中,团队建

当我运行以下代码(Java)时:

我总是得到这样的结果:2015-01-27T02:47:08.000+02:00

正如你所看到的,月份和时间是不正确的

有什么建议吗?
感谢

一年中的月份用大写字母
M
以及一天中的小时
H
书写

试一试


一年中的月份用大写字母
M
以及一天中的小时
H
书写

试一试

tl;博士 2015-03-27T02:47:08

java.time 您的输入字符串似乎特别奇怪。小时没有填充零,但秒有填充零?奇怪,但是可以使用现代java.time类对其进行解析

该项目现在正在进行中,团队建议迁移到类

您试图将缺少任何偏移量或时区信息的日期时间值存储到使用时区的数据类型中,这是不恰当的。请将您的输入字符串解析为,因为我们没有指示或

转储到控制台

System.out.println( input + " = " + ldt );
2015年3月27日凌晨2:47:08=2015-03-27T02:47:08

请注意,
LocalDateTime
不是时间线上的一个点。它仅代表26-27小时范围内的一组可能时刻。在您将值放入上下文之前,它没有实际意义,或者应用偏移量获得
OffsetDateTime
,或者应用完整时区获得
zoneDateTime


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)
该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可以在这里找到一些有用的类,如、、和。

tl;博士 2015-03-27T02:47:08

java.time 您的输入字符串似乎特别奇怪。小时没有填充零,但秒有填充零?奇怪,但是可以使用现代java.time类对其进行解析

该项目现在正在进行中,团队建议迁移到类

您试图将缺少任何偏移量或时区信息的日期时间值存储到使用时区的数据类型中,这是不恰当的。请将您的输入字符串解析为,因为我们没有指示或

转储到控制台

System.out.println( input + " = " + ldt );
2015年3月27日凌晨2:47:08=2015-03-27T02:47:08

请注意,
LocalDateTime
不是时间线上的一个点。它仅代表26-27小时范围内的一组可能时刻。在您将值放入上下文之前,它没有实际意义,或者应用偏移量获得
OffsetDateTime
,或者应用完整时区获得
zoneDateTime


关于java.time 该框架内置于Java8及更高版本中。这些类取代了麻烦的旧日期时间类,例如,&

该项目现已启动,建议迁移到类

要了解更多信息,请参阅。并搜索堆栈溢出以获得许多示例和解释。规格是

从哪里获得java.time类

  • ,及以后
    • 内置的
    • 标准JavaAPI的一部分,带有捆绑实现
    • Java9添加了一些次要功能和修复
    • 大部分java.time功能都在中向后移植到Java6和Java7
    • 该项目专门为Android采用了ThreeTen Backport(如上所述)

该项目使用其他类扩展了java.time。这个项目是java.time将来可能添加的一个试验场。您可能会在这里找到一些有用的类,例如、、和。

谢谢,我尝试过,但不幸的是我得到了:无法解析“27/3/2015 2:47:08 AM”:由于时区偏移转换而导致的非法即时。这是另一个问题,请参阅此处的其他问题,但是这个日期是一个有效的日期,我可以在我的机器上执行代码,而且它工作得很好。如果您遵循上面的链接,您将获得有关错误的更多详细信息和解决方案,请尝试:
DateTimeFormat.forPattern(“dd/M/yyyy H:mm:ss aa”).parseLocalDateTime(“27/3/2015 2:47:08 AM”)谢谢,我试过了,但不幸的是,我得到了:无法解析“27/3/2015 2:47:08 AM”:由于时区偏移转换导致的非法即时。这是另一个问题,请参见此处的其他问题,例如,但此日期是有效日期。我可以在我的机器上执行代码,并且它工作正常。如果您遵循上面的链接,您将获得有关错误的更多详细信息和解决方案,请尝试:
DateTimeFormat.forPattern(“dd/M/yyyy H:mm:ss aa”).parseLocalDateTime(“27/3/2015 2:47:08 AM”)
LocalDateTime.parse( 
    "27/3/2015 2:47:08 AM" , 
    DateTimeFormatter.ofPattern( "d/M/uuuu h:m:s a" , Locale.US ) 
)
String input = "27/3/2015 2:47:08 AM";
DateTimeFormatter f = DateTimeFormatter.ofPattern( "d/M/uuuu h:m:s a" , Locale.US );
LocalDateTime ldt = LocalDateTime.parse( input , f );
System.out.println( input + " = " + ldt );