我知道我可以通过这种方式分配值:
LocalDateTime session = LocalDateTime.of(2017, Month.FEBRUARY, 12, 10, 30);
但是有一种直接分配值的方法:
LocalDateTime session = LocalDateTime.of(2019-12-15_15:14:21.629);
或者也许:
LocalDateTime session = LocalDateTime.of(2019-12-15T15:14:21.629);
?
答案 0 :(得分:1)
您可以在下面使用DateTimeFormatter
以这种方式进行操作:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS");
LocalDateTime session = LocalDateTime.parse("2019-12-15T15:14:21.629", formatter);
或
您可以直接解析LocalDateTime
中的字符串。
LocalDateTime session = LocalDateTime.parse("2019-12-15T15:14:21.629");
答案 1 :(得分:1)
您的后一个版本更接近:
LocalDateTime session = LocalDateTime.parse("2019-12-15T15:14:21.629");
System.out.println("session: " + session);
输出为:
会议:2019-12-15T15:14:21.629
LocalDateTIme
和其他java.time类不仅从其toString
方法中打印ISO 8601格式。它们还解析与默认格式相同的格式,即没有任何显式格式化程序。日期和时间之间为T
的字符串,2019-12-15T15:14:21.629
为国际标准ISO 8601格式。只有您需要在Java前后加上双引号,以告诉Java它是一个字符串。
如果您想在日期和时间之间使用带下划线(_
)的变体,则仍需要将其包装在引号中以形成字符串,并另外定义格式化程序以对其进行解析,如Anish B回答。