我想将日期打印到ISO-8601标准:YYYY-MM-DDTHH:mm:ss.sssZ所以我使用了以下几行代码,但是我得到了意想不到的输出
var date = new Date(2012,10,30,6,51); print('UTC Format: '+date.toGMTString()); print('toString() method: '+date.toString()); print('toJSON() method: '+date.toJSON());//print hours and minutes incorrectly print('to UTCString() method: ' + date.toUTCString());
相应的输出是
UTC Format: Fri,30 Nov 2012 01:21:00 GMT toString() method: Fri Nov 30 2012 06:51:00 GMT+0530 (India Standard Time) toJSON() method: 2012-11-30T01:21:00.000Z to UTCString() method: Fri,30 Nov 2012 01:21:00 GMT
toJSON()方法错误地打印小时和分钟,但toString()正确打印它,我想知道是什么原因.
我是否必须向Date对象添加时间偏移,如果是,那么如何?
解决方法
var date = new Date(); console.log(date.toJSON(),new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toJSON());