java Year在dateTimeFormat之后更改为0000
我正在尝试将日期时间从字符串转换为组织。乔达。时间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);
# 1 楼答案
weekyear
您使用
xxxx
来解析似乎是秒分数的内容。模式字母x
表示基于周的年份。既然分数是0,你就把年份设为0解决方法:使用
SSSSSS
表示秒的分数,而不是xxxx
,如Sanjay的正确答案所示文档中说是毫秒(所以是毫秒),但是解析
.000000
(微秒)也有效。您需要指定小数的确切数目,所以SSSSSS
。当发生这种情况时,Joda Time会将前三位小数用于毫秒,而忽略其余的小数链接:Documentation of ^{}
# 2 楼答案
乔达时代图书馆
# 3 楼答案
正如在前面的回答中提到的,您对日期字符串使用了错误的语法。
x
用于一年中的一周(读here要解决手头的问题,你可以使用
DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss.SSSSSS").parseLocalDateTime(dateTimeString)