当我在JS控制台中尝试以下代码时,它将返回正确的UTC表示法(-2小时):
new Date('1978/04/03').toISOString()
-> "1978-04-02T22:00:00.000Z"
但是,从4月2日或更早开始,它表现出了不同的行为:它只会减去1小时而不是2小时:
new Date('1978/04/02').toISOString()
-> "1978-04-01T23:00:00.000Z"
最佳答案
可能是夏令时开始了,但是请注意,您的输入格式(yyyy/mm/dd
)并未得到正式支持,这意味着依靠它,您将依靠“ ...任何特定于实现的启发式或特定于实现的启发式日期格式...” JavaScript引擎碰巧支持的格式,每个引擎(例如,浏览器与浏览器)的格式不同。如果您使用的格式不是the official supported format,则最好自己解析。
但是我怀疑您会发现甚至new Date(1978, 3, 3)
和new Date(1978, 3, 2)
都相差一小时,因为您的JavaScript引擎似乎正在解析该字符串。