我需要解析一个字符串到目前为止。问题在于该字符串具有随机数的拆分秒数。为了更加精确,位数在0到7之间变化。为了测试这一点,我编写了以下情形:
public static void main(String[] args) throws ParseException {
// printDate("2016-02-10T12:48:08.632746Z");
printDate("2016-02-10T12:48:08.632Z");
}
private static void printDate(String datumAsString) throws ParseException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
System.out.println(LocalDateTime.parse(datumAsString, formatter));
}
带注释的行不起作用(它引发ParseException)。你有解决的办法吗?
最佳答案
假设秒后的数字代表秒的一部分而不是毫秒,那么两个字符串都可以通过ZonedDateTime
“本地”解析-因此您可以编写:
private static void printDate(String datumAsString) throws ParseException {
LocalDateTime ldt = ZonedDateTime.parse(datumAsString).toLocalDateTime();
System.out.println(ldt);
}
您可能还想使用
ZonedDateTime
而不是忽略时区信息。