程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印?

开发过程中遇到在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印的问题如何解决?下面主要结合日常开发的经验,给出你关于在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印的解决方法建议,希望对你解决在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印有所启发或帮助; @H_404_0@我需要将本地时区转换为太平洋/洛杉矶。

@H_404_0@例如,如果用户在夏威夷

@H_404_0@代码:取自https://stackoverflow.com/a/54127122/15358601

function convertTZ(date,tz@R_616_10495@ng) {
    return new Date((typeof date === "@R_616_10495@ng" ? New Date(datE) : datE).tolocale@R_616_10495@ng("en-US",{timeZone: tz@R_616_10495@ng}));   
}

convertTZ(new Date(),"America/Los_Angeles")
@H_404_0@2021 年 3 月 14 日星期日 17:01:59 GMT-1000(夏威夷-阿留申标准时间){}

@H_404_0@它仍然打印与夏威夷的决赛。我需要美国/洛杉矶显示器,而不是夏威夷。 (但是它仍然打印正确的新小时和分钟,只是显示标签不正确) 这怎么办?

@H_404_0@

在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印

@H_404_0@该解决方案也适用于其他时区,分别打印其其他时区,例如:America/New_York、Europe/London、Europe/Paris 等,

解决方法

一些事情:

  • 您为 convertTZ 链接的答案中的方法有缺陷。不应使用 toLocal@R_616_10495@ng 构造函数解析 Date 的输出。请阅读该答案后的评论。

  • Date 对象不能转换到另一个时区,因为它实际上不在任何时区。 Date 对象封装的唯一内容是其 Unix 时间戳,可以通过 .valueOf().getTime() 或任何将其强制为 number 的机制来查看。此类值始终基于 UTC。

  • 当您看到来自 Date 对象的本地时间或时区时,系统的本地时区将应用于内部基于 UTC 的 Unix 时间戳以创建输出。本地时区不能通过 JavaScript(或 TypeScript)以编程方式更改,也不能基于每个对象进行更改。

  • 与其尝试将一个时区中的 Date 对象转换为另一个时区中的 Date 对象,不如认识到所有 Date 对象本质上都是 UTC。因此,您可以创建一个位于不同时区的 @R_616_10495@ng(例如,将 toLocale@R_616_10495@ngtimeZone 选项一起使用),但您不能创建一个新的 {{1 }} 来自该字符串的对象。如果您想要一个实际上可以设置为不同时区的对象,请虑 Luxon。如果您需要一个没有库的解决方案,有一天您将能够使用 ZoneddatetiR_13_11845@e 中的 TC39 Temporal Proposal,它最终将成为 ECMAScript 的一部分。

  • 注意在 Date 对象上调用 console.log。 ECMAScript 规范和 whatWG Console 规范都没有定义这种调用的行为。这是未定义的行为。在某些环境中,记录的字符串输出与在 Date 对象上调用 .to@R_616_10495@ng() 相同 - 这将给出与 Date 对象的时间戳等效的本地时间,以及当地时区。其他环境将显示调用 Date 的相同输出,这将提供 ISO-8601 UTC 时间戳表示。不要记录 .toISO@R_616_10495@ng() 对象,而是自己调用这两个函数之一并记录输出。

,
function convertTZ() {
    return new Date().toLocale@R_616_10495@ng('en-US',{ timeZone: "America/Los_Angeles" });
}
console.log(convertTZ());

//Second way
//Hoepfully that's going to be the code that you need.You can change the way that you want to see the date.
function convertTZ() {
    return new Date().toLocale@R_616_10495@ng('en-US',{
    timeZone: "America/Los_Angeles",day: "numeric",month: "short",year: "numeric",hour: "numeric",minute: "2-digit"
});
}
console.log(convertTZ(),' America/Los Angeles');
,

根据您的要求, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/datetiR_13_11845@eFormat/resolvedoptions 将有助于实现它。

大佬总结

以上是大佬教程为你收集整理的在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印全部内容,希望文章能够帮你解决在 JavaScript 中将日期转换为另一个时区并使用正确的时区打印所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: