这种格式是什么意思T00:00:00.000Z?

时间:2015-03-09 19:08:29

标签: javascript time timezone timestamp format

请有人在javascript中解释这种格式

 T00:00:00.000Z

以及如何解析它。

由于

5 个答案:

答案 0 :(得分:47)

它是ISO-8601日期表示的一部分。它不完整,因为此模式中的完整日期表示还应包含日期:

2015-03-04T00:00:00.000Z //Complete ISO-8601 date

如果您尝试解析此日期,则会收到Invalid Date错误:

new Date('T00:00:00.000Z'); // Invalid Date

所以,我想以这种格式解析时间戳的方法是连接任何日期

new Date('2015-03-04T00:00:00.000Z'); // Valid Date

然后你只能提取你想要的部分(时间戳部分)

var d = new Date('2015-03-04T00:00:00.000Z');
console.log(d.getUTCHours()); // Hours
console.log(d.getUTCMinutes());
console.log(d.getUTCSeconds());

答案 1 :(得分:4)

我建议您使用moment.js。在moment.js中你可以:

var localTime = moment().format('YYYY-MM-DD'); // store localTime
var proposedDate = localTime + "T00:00:00.000Z";

现在您有一段时间的正确格式,如果它有效则解析它:

var isValidDate = moment(proposedDate).isValid();
// returns true if valid and false if it is not.

并获得时间部分,你可以做一些事情:

var momentDate = moment(proposedDate)
var hour = momentDate.hours();
var minutes = momentDate.minutes();
var seconds = momentDate.seconds();

// or you can use `.format`:
console.log(momentDate.format("YYYY-MM-DD hh:mm:ss A Z"));

有关momentjs http://momentjs.com/

的更多信息

答案 2 :(得分:1)

正如一个人可能已经建议过的那样,

我像这样直接将ISO 8601日期字符串传递给了……

`moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')`

`moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')`

这两种解决方案都会为您带来相同的结果。

`console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019`

答案 3 :(得分:0)

请使用DateTimeFormatter ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME; 而不是DateTimeFormatter.ofPattern(“ dd-MM-yyyy HH:mm:ss”)或任何模式

这解决了我的问题 java.time.format.DateTimeParseException:无法在索引10处解析文本'2019-12-18T19:00:00.000Z'

答案 4 :(得分:-1)

我在nodejs中使用了这段代码

 let result = moment().subtract(age, "years").format("YYYY-MM-DD")+"T00:00:00.000Z";
 return res.json(result); 

 //result is 

 // "2001-11-27T00:00:00.000Z"

我减去了18年。

它将帮助您查询nodejs。