此格式表示T00:00:00.000Z是什么意思?


Answers:


84

它是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());

2
关闭-你应该使用getUTCHoursgetUTCMinutesgetUTCSeconds。否则,您将赋予本地时区的行为,由于DST的不同,这将取决于您选择的时区和选择的日期产生不同的结果。
马特·约翰逊

12

我建议你用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
您应该能够立即在构造函数中使用适当的格式字符串来对此进行解析。(如果该日期不属于值,则该时刻将采用当前日期。)此外,您可能会考虑moment.utc(...)使结果值与原始值位于同一UTC区域中。
马特·约翰逊·品脱

3

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

我将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`

在解释上面的代码的同时,还可以清楚地链接并推荐moment.js javascript库的用法。
VKen

这不能为问题提供答案。一旦您拥有足够的声誉,您就可以在任何帖子中发表评论;相反,请提供不需要问询者澄清的答案。-点评来源
Phil Tune

@PhilTune您说得对,我认为我的大脑移动得如此之快,以至于我在技术上是在回复评论而不是提问
that_developer

1

请使用DateTimeFormatterISO_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'


时间解决了我的问题,时间从字符串类型转换为OffsetDateTime
RSH
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.