gpt4 book ai didi

javascript - 将 DateTime 转换为 JavaScript 时不一致

转载 作者:行者123 更新时间:2023-11-30 20:00:20 25 4
gpt4 key购买 nike

我有一个将 DateTimeZoneHandling 设置为 Local 的 ASP.NET webapi,在转换为 JavaScript 日期时我得到了两个不同的结果。

示例 1

从服务器返回的日期 1932-10-13T00:00:00-04:00

var strDate = new Date("1932-10-13T00:00:00-04:00");

strDate.toISOString(); // 1932-10-13T04:00:00.000Z
strDate.toLocaleString(); // 10/12/1932, 11:00:00 PM

示例 2

从服务器返回的日期 2013-05-09T00:00:00-04:00

var strDate = new Date("2013-05-09T00:00:00-04:00");

strDate.toISOString(); // 2013-05-09T04:00:00.000Z
strDate.toLocaleString(); // 5/9/2013, 12:00:00 AM

我预计行为应该始终是午夜,因为从服务器返回的日期始终是午夜。似乎所有最近的日期都正确解析,但是,过去的日期不正确。

最佳答案

The timezone can vary in some locales, for example, I'm UTC-0300, and on certain season shifts it becomes UTC-0200, so it indicates that your locale changed the offset too, making it display the time one hour lesser, basicaly because you locale adopted a different offset along the year.

下面的示例,我已将您的第一个示例更改为使用与第二个示例相同的日期和月份,以便证明旧日期与它无关。

console.log("Example One");
var strDate = new Date("1932-05-09T00:00:00-04:00");

console.log(strDate.toISOString());
console.log(strDate.toLocaleString());

console.log("--------------------------");
console.log("Example Two");

var strDate2 = new Date("2013-05-09T00:00:00-04:00");

console.log(strDate2.toISOString());
console.log(strDate2.toLocaleString());


关于UTC/Zulu time的进一步解释

它已经规范化了iso date到祖鲁日期(零偏移 iso date )。它仍然是相同的日期时间,但它已将时区偏移量转换为小时,使时区偏移量为零。

date      [2013-05-09]
separator [T]
time [00:00:00]
offset [-04:00]

基本方面是 00:00:00.000-04:0004:00:00.000Z 相同。

关于javascript - 将 DateTime 转换为 JavaScript 时不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53449600/

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