将 Java 脚本日期对象转换为 Java LocalDateTime
Converting Javascript Date object to Java LocalDateTime
我正在尝试从 Java 脚本前端获取 UTC 时间到 Java 后端。我想通过使用 Date.toISOString()
并将该对象发送到 Java 后端来完成此操作。但是,我注意到的一个问题是 toISOString()
returns 时间戳采用 YYYY-MM-DDTHH:mm:ss.sssZ
格式,并且这种格式不匹配任何 Java 8 预定义 LocalDateTime
格式化程序。
我的问题是,是否有最佳实践来完成我想做的事情?我知道我可以编写自定义 Java 格式化程序来匹配 Java 脚本输出。但是,我想知道是否有一个标准的方法来完成这个,因为它看起来很常见。
有可用的默认 ISO 日期格式化程序。您可以使用以下
LocalDateTime date = LocalDateTime.parse(str, DateTimeFormatter.ISO_DATE_TIME);
请注意,这将采用 UTC 时区的 LocalDateTime。
更新:根据 Andreas 的评论。
如果您希望获得服务器时区的 LocalDateTime 实例,请使用
LocalDateTime.ofInstant(Instant.parse(str), ZoneId.systemDefault())
我正在尝试从 Java 脚本前端获取 UTC 时间到 Java 后端。我想通过使用 Date.toISOString()
并将该对象发送到 Java 后端来完成此操作。但是,我注意到的一个问题是 toISOString()
returns 时间戳采用 YYYY-MM-DDTHH:mm:ss.sssZ
格式,并且这种格式不匹配任何 Java 8 预定义 LocalDateTime
格式化程序。
我的问题是,是否有最佳实践来完成我想做的事情?我知道我可以编写自定义 Java 格式化程序来匹配 Java 脚本输出。但是,我想知道是否有一个标准的方法来完成这个,因为它看起来很常见。
有可用的默认 ISO 日期格式化程序。您可以使用以下
LocalDateTime date = LocalDateTime.parse(str, DateTimeFormatter.ISO_DATE_TIME);
请注意,这将采用 UTC 时区的 LocalDateTime。
更新:根据 Andreas 的评论。
如果您希望获得服务器时区的 LocalDateTime 实例,请使用
LocalDateTime.ofInstant(Instant.parse(str), ZoneId.systemDefault())