我知道我可以通过这种方式分配值:
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);
?
您可以在下面使用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 session = LocalDateTime.parse("2019-12-15T15:14:21.629");
您的最新版本更接近:
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。