Javascript 为什么1906年以下的日期在解析时显示的时间部分不正确?

Javascript 为什么1906年以下的日期在解析时显示的时间部分不正确?,javascript,date,Javascript,Date,正确显示时间: 新日期(“1906-01-01T15:00:00+05:30”)=> 1906年1月1日星期一15:00:00 GMT+0530(印度标准时间) 时间不正确 新日期(“0001-01-01T15:00:00+05:30”)=> 周一1月1日0001 15:23:28 GMT+0553(印度标准时间) 请注意,时间偏移已更改-不确定为什么会发生这种情况 时间不正确 新日期(“1905-01-01T15:00:00+05:30”)=> 太阳1905年1月1日14:51:10 GMT+

正确显示时间: 新日期(“1906-01-01T15:00:00+05:30”)=> 1906年1月1日星期一15:00:00 GMT+0530(印度标准时间)

时间不正确 新日期(“0001-01-01T15:00:00+05:30”)=> 周一1月1日0001 15:23:28 GMT+0553(印度标准时间)

请注意,时间偏移已更改-不确定为什么会发生这种情况

时间不正确 新日期(“1905-01-01T15:00:00+05:30”)=> 太阳1905年1月1日14:51:10 GMT+0521(印度标准时间)


在这种情况下,如何正确显示时间?

英属印度直到1905年才采用国际时间标准。直到那时,子午线穿过阿拉哈巴德。所以,给你们的IST在技术上是正确的。i、 例如,由于偏移量+0521,IST于1906年1月1日生效。这就是为什么如果给定的日期在1905年12月31日之后,IST将使用+0530的偏移量。基本上,您输入的日期作为用户浏览器的时区时间。所以,即使你给出一个偏移量,它也不重要,因为时间被认为是1905年的IST时间,它可能有0521作为偏移量。我认为,当被接受时,有一个不同的偏移量,你的偏移量不能正常工作。因此,如果您将偏移量设为“+0521”,那么您将得到所需的时间,但变化为10秒

也许他们改变了时区?我不认为一年中的任何时间都应该有任何程度的准确性…“虽然英属印度直到1905年才正式采用标准时区,但当经度为82.5°E的阿拉哈巴德以东的子午线被选为印度的中央子午线时,对应于该国的单一时区(UTC+5:30)。印度标准时间于1906年1月1日生效,也适用于斯里兰卡(当时的锡兰)”。根据@deceze的评论,我在JS中发现了一个bug(?):
新日期(“0000等…
返回一个日期。但是,它不应该:我们使用的系统中没有像零年这样的东西(但在iso8601中是这样的)因此,年份从-1(1BC)变为1AD。