我正在使用odata wcf数据服务,它以/ Date(毫秒)格式返回日期
我尝试在时区进行转换,但是我遇到了旧日期问题
请检查附件的图片差异
new Date(new Date('1906-01-02').getTime()-19800000)
new Date(new Date('1906-01-01').getTime()-19800000)
Tue Jan 02 1906 00:00:00 GMT+0530 (India Standard Time) -- ok
Sun Dec 31 1905 23:51:10 GMT+0521 (India Standard Time) --not good
应该是
Tue Jan 01 1906 00:00:00 GMT+0530 (India Standard Time)
答案 0 :(得分:2)
您获得的值可能是正确的。在整个历史记录中,时区并不是一成不变的:
直到1905年,英属印度才采用标准化时区。通过阿拉哈巴德以东的子午线被选为印度的中央子午线。该协定于1906年1月1日生效,但加尔各答和孟买分别维持各自的时区,直到1948年和1955年。 https://www.mapsofindia.com/on-this-day/1st-september-1947-indian-standard-time-is-introduced
...所以您的数学越过了该特定区域更改定义的边界点。 (总的来说,这种事情不应该是意外的。日期和时间是一个看似困难的问题;人类日历是不规则的,不利于简单的数学运算。)