这是我将 String 解析为 LocalDateTime
的方法。
public static String formatDate(final String date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SS");
LocalDateTime formatDateTime = LocalDateTime.parse(date, formatter);
return formatDateTime.atZone(ZoneId.of("UTC")).toOffsetDateTime().toString();
}
但这只适用于输入字符串,例如
2017-11-21 18:11:14.05
但对于 2017-11-21 18:11:14.057
失败
与 DateTimeParseException
。
如何定义适用于 .SS
和 .SSS
的格式化程序?
最佳答案
您需要构建具有指定分数的格式化程序
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("yyyy-MM-dd HH:mm:ss")
.appendFraction(ChronoField.MILLI_OF_SECOND, 2, 3, true) // min 2 max 3
.toFormatter();
LocalDateTime formatDateTime = LocalDateTime.parse(date, formatter);
关于java - 如何在 java 中解析具有两个或三个毫秒数字的日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48291776/