gpt4 book ai didi

javascript - 是否有获取区域设置字符串格式的 UTC 日期的函数?

转载 作者:行者123 更新时间:2023-11-29 18:43:39 25 4
gpt4 key购买 nike

我想在 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"}) 将打印出“3/29/2019 年”。

最佳答案

我还想使用本地化字符串设置来显示日期,就像 toLocaleDateString() 那样,但使​​用日期的 UTC 值,而不是本地时区。

例如:

Localized UTC date problem

我确实想要本地化的字符串格式,但我还想要 UTC 值而不是本地时区值。此示例中的所需输出为 4/3/2019,而不是 4/2/2019


我承认@AndersonH​​appens 的建议,但我没有使用它。相反,这是我所做的:

有一个getTimezoneOffset()函数,它提供本地时区偏移量。

我们可以使用这个函数结果并创建一个新的 Date,应用差异。然后,我们可以像往常一样直接使用 toLocaleDateString() 来获取本地化字符串格式的日期:

Localized UTC date solution

作为函数的解决方案可能是这样的:

function toLocaleUTCDateString(date, locales, options) {
const timeDiff = date.getTimezoneOffset() * 60000;
const adjustedDate = new Date(date.valueOf() + timeDiff);
return adjustedDate.toLocaleDateString(locales, options);
}

关于javascript - 是否有获取区域设置字符串格式的 UTC 日期的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55427168/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com