“转换字符串”;2015年2月18日12:00:00:000AM“;到LocalDateTime

“转换字符串”;2015年2月18日12:00:00:000AM“;到LocalDateTime,datetime,java-8,Datetime,Java 8,我从mssql数据库中得到一个字符串,表示这样的日期 2015年2月18日12:00:00:000上午 不,我试图用 private static final DateTimeFormatter ZEITSTEMPEL_FORMAT = DateTimeFormatter.ofPattern("MMM dd yyyy HH:mm:ss:SSSa"); LocalDateTime d = LocalDateTime.parse(getBENOETIGT_ZUM(),ZEITSTEMPEL_

我从mssql数据库中得到一个字符串,表示这样的日期

2015年2月18日12:00:00:000上午

不,我试图用

private static final DateTimeFormatter ZEITSTEMPEL_FORMAT = DateTimeFormatter.ofPattern("MMM dd yyyy HH:mm:ss:SSSa");    
LocalDateTime d = LocalDateTime.parse(getBENOETIGT_ZUM(),ZEITSTEMPEL_FORMAT);
原因:java.time.format.DateTimeParseException:文本“2015年2月18日” 无法分析“12:00:00:000AM”:找到冲突:字段AmPmOfDay 1 与从12:00派生的第0天不同

我错过了什么? 提前Thx
Inge

您的图案不正确。您使用的是一天中的小时数(0-23),但您需要使用上午和下午的小时数(1-12)

因此,正确的模式应该是:


DateTimeFormatter zeitstepel_FORMAT=DateTimeFormatter.of模式(“mm-dd-yyy-hh:mm:ss:SSSa”)

Thx用于快速响应,但通过使用它,我得到了另一个箭头,原因是:java.time.format.DateTimeParseException:无法在索引处解析文本“Oct 21 2014 12:00:00:000AM”0@Inge我无法重现你在这里陈述的问题。我试过两条线,它们都能用。您确定字符串开头没有空格吗?问题出在索引0上有点奇怪。尝试使用
trim()
,看看是否有帮助。@您是否已将区域设置设置为英语(希望如此)?@Mneo Hochschild我缺少了一个,但数据库似乎返回了一些带有额外空间的日期。例如,2015年2月4日12:00:00:000AM(参见2月和4日之间的两个空格?),因此在这种情况下,模式不起作用。有没有办法用模式解决这个问题?@Inge尝试一下中的技巧。请编辑问题的标签,这与javafx-8无关。添加标签,如
java-8
datetime