【发布时间】:2022-02-10 20:10:13
【问题描述】:
我想在 JavaScript 中获取当前的 UTC 日期,但以本地日期格式显示它(就像 Date.toLocaleDateString() 一样)。
我首先尝试使用 Date.toUTCString() 获取当前的 UTC 日期,但这实际上并没有以本地格式打印出来。
然后我尝试使用toLocaleDateString() 中的选项配置,但这只是打印了本地日期,而不是本地格式的 UTC 日期。
例如新Date().toLocaleDateString(options = {timeZone: "UTC"})
然后我尝试使用Intl.DateTimeFormat() 进行格式化,但这与Date.toLocaleDateString() 的结果相同。
如果有办法获取语言环境格式,那么我很乐意使用该格式来格式化 UTC 日期,但据我所知没有。
例如,给定new Date("Sat, 30 Mar 2019 00:27:19 GMT"),在美国,我应该打印出“3/30/2019”,在欧洲,我应该打印出“30/3/2019”,等等,对于每个支持的语言环境.
但是,new Date("Sat, 30 Mar 2019 00:27:19 GMT").toLocaleDateString(options = {timeZone: "UTC"}) 将打印出“2019 年 3 月 29 日”。
【问题讨论】:
-
@HereticMonkey,我在问如何以本地格式显示当前的 UTC 日期。这与询问有关格式化日期的文档在哪里的重复如何?您链接到的帖子中的任何地方都没有解决我的问题。你能澄清一下吗?
-
我不确定我是否理解您的意图。听起来您想向用户显示他们的语言环境的当前时间(毕竟,这与获取当前 UTC 时间,然后将其转换为某人的语言环境相同)。那么为什么不只是......这样做呢?客户端,
(new Date()).toLocaleString(),我们已经完成了,不是吗? -
该问题的答案几乎涵盖了格式化
Date对象的所有可能方式。我不知道你怎么找不到答案。 -
@Mike'Pomax'Kamermans 这个想法是根据 UTC 获取实际日期,但以当地国家或地区的格式显示。没有在他们的时区获取日期并显示它。我已经在下面给出了一个答案,基本上就是我想要的。
标签: javascript date