Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Javascript日期对象转换为Java LocalDateTime_Javascript_Java_Typescript_Datetime_Datetime Format - Fatal编程技术网

将Javascript日期对象转换为Java LocalDateTime

将Javascript日期对象转换为Java LocalDateTime,javascript,java,typescript,datetime,datetime-format,Javascript,Java,Typescript,Datetime,Datetime Format,我正在尝试从Javascript前端到Java后端获取UTC时间。我希望通过使用Date.toISOString并将该对象发送到Java后端来实现这一点。然而,我注意到的一个问题是,toISOString以YYYY-MM-DDTHH:MM:ss.sssZ格式返回时间戳,并且该格式与任何Java 8预定义的LocalDateTime格式化程序都不匹配 我的问题是,有没有一个最佳实践来做我想做的事情?我知道我可以编写一个自定义Java格式化程序来匹配Javascript输出。然而,我想知道是否有一个

我正在尝试从Javascript前端到Java后端获取UTC时间。我希望通过使用Date.toISOString并将该对象发送到Java后端来实现这一点。然而,我注意到的一个问题是,toISOString以YYYY-MM-DDTHH:MM:ss.sssZ格式返回时间戳,并且该格式与任何Java 8预定义的LocalDateTime格式化程序都不匹配


我的问题是,有没有一个最佳实践来做我想做的事情?我知道我可以编写一个自定义Java格式化程序来匹配Javascript输出。然而,我想知道是否有一个标准的方法来实现这一点,因为这似乎是一个非常常见的情况。

有默认的ISO日期格式化程序可用。您可以使用以下命令

LocalDateTime date = LocalDateTime.parse(str, DateTimeFormatter.ISO_DATE_TIME);
注意,这将假定UTC时区的LocalDateTime

更新:根据Andreas的评论

如果希望在服务器时区中获取LocalDateTime实例,请使用

LocalDateTime.ofInstant(Instant.parse(str), ZoneId.systemDefault())

有默认的ISO日期格式化程序可用。您可以使用以下命令

LocalDateTime date = LocalDateTime.parse(str, DateTimeFormatter.ISO_DATE_TIME);
注意,这将假定UTC时区的LocalDateTime

更新:根据Andreas的评论

如果希望在服务器时区中获取LocalDateTime实例,请使用

LocalDateTime.ofInstant(Instant.parse(str), ZoneId.systemDefault())

LocalDateTime在哪个时区?如果是服务器时区,请使用LocalDateTime.OfInstantint.parsedateString,ZoneId.systemDefault-是否确实要使用本地日期/时间?LocalDateTime在Java端使用的类不正确。ISO字符串定义了一个时间点。LocalDateTime不能表示这一点。使用Instant或ZoneDateTime.LocalDateTime在哪个时区?如果是服务器时区,请使用LocalDateTime.OfInstantint.parsedateString,ZoneId.systemDefault-是否确实要使用本地日期/时间?LocalDateTime在Java端使用的类不正确。ISO字符串定义了一个时间点。LocalDateTime不能表示这一点。使用Instant或ZonedDateTime。这会忽略时区,在这种情况下,将LocalDateTime设置为UTC。你怎么知道OP想要UTC的本地日期/时间?你是对的,ISO_date_time确实有效!我觉得不会,因为Java文档中提供的示例是“2011-12-03T10:15:30”、“2011-12-03T10:15:30+01:00”和“2011-12-03T10:15:30+01:00[欧洲/巴黎]”。我没有意识到Z是它将检测到的一个有效区域。这忽略了时区,在本例中使LocalDateTime为UTC。你怎么知道OP想要UTC的本地日期/时间?你是对的,ISO_date_time确实有效!我觉得不会,因为Java文档中提供的示例是“2011-12-03T10:15:30”、“2011-12-03T10:15:30+01:00”和“2011-12-03T10:15:30+01:00[欧洲/巴黎]”。我没有意识到Z是它将检测到的有效区域。