在 dateTimeFormat 之后年份更改为 0000
Year changed to 0000 after dateTimeFormat
我正在尝试将 dateTime 从字符串转换为 org.joda.time.LocalDateTime。我下面代码中的变量 actualLocalDateTime 设置为:0000-03-05T14:00:09.000,而不是 2020-03-05T14:00:09.000。
我在这里错过了什么?
DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.xxxx");
String dateTimeString = "2020-03-05 14:00:09.000000";
LocalDateTime actualLocalDateTime = DATE_TIME_FORMATTER.parseLocalDateTime(dateTimeString);
使用 joda 时间库。
org.joda.time.format.DateTimeFormatter USPS_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
String dateTimeString = "2020-03-05 14:00:09.000000";
org.joda.time.LocalDateTime actualLocalDateTime = USPS_DATE_TIME_FORMATTER.parseLocalDateTime(dateTimeString);
System.out.println(actualLocalDateTime);
周年
Symbol Meaning Presentation Examples
------ ------- ------------ -------
x weekyear year 1996
您使用 xxxx
来解析似乎是秒的小数部分。模式字母 x
用于基于周的年份。因此,由于分数为 0,因此您将年份设置为 0。
解决方案:使用 SSSSSS
代替 xxxx
,如 Sanjay 的正确答案所示。
S fraction of second millis 978
文档说 millis(所以毫秒),但解析 .000000
(微秒)也有效。您需要指定精确的小数位数,因此 SSSSSS
。什么时候发生的是 Joda-Time 使用前三位小数表示毫秒而忽略其余部分。
如之前的回答所述,您对日期字符串使用了错误的语法。
x
用于一年中的第几周(阅读 here
要解决您手头的问题,您可以使用
DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS").parseLocalDateTime(dateTimeString)
我正在尝试将 dateTime 从字符串转换为 org.joda.time.LocalDateTime。我下面代码中的变量 actualLocalDateTime 设置为:0000-03-05T14:00:09.000,而不是 2020-03-05T14:00:09.000。 我在这里错过了什么?
DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.xxxx");
String dateTimeString = "2020-03-05 14:00:09.000000";
LocalDateTime actualLocalDateTime = DATE_TIME_FORMATTER.parseLocalDateTime(dateTimeString);
使用 joda 时间库。
org.joda.time.format.DateTimeFormatter USPS_DATE_TIME_FORMATTER = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS");
String dateTimeString = "2020-03-05 14:00:09.000000";
org.joda.time.LocalDateTime actualLocalDateTime = USPS_DATE_TIME_FORMATTER.parseLocalDateTime(dateTimeString);
System.out.println(actualLocalDateTime);
周年
Symbol Meaning Presentation Examples ------ ------- ------------ ------- x weekyear year 1996
您使用 xxxx
来解析似乎是秒的小数部分。模式字母 x
用于基于周的年份。因此,由于分数为 0,因此您将年份设置为 0。
解决方案:使用 SSSSSS
代替 xxxx
,如 Sanjay 的正确答案所示。
S fraction of second millis 978
文档说 millis(所以毫秒),但解析 .000000
(微秒)也有效。您需要指定精确的小数位数,因此 SSSSSS
。什么时候发生的是 Joda-Time 使用前三位小数表示毫秒而忽略其余部分。
如之前的回答所述,您对日期字符串使用了错误的语法。
x
用于一年中的第几周(阅读 here
要解决您手头的问题,您可以使用
DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS").parseLocalDateTime(dateTimeString)