我想知道这是做什么的:
newM = moment("2015-08-11T13:00:00.000000Z", "YYYY-MM-DDTHH:mm:ss.SSSS[Z]", true)具体地说-格式字符串中的Z。
我正在使用一个使用moment的库(react-bootstrap-datetimepicker)。此库(React组件)接受一个参数'format‘,该参数用作moment的第二个参数
我看不出Z在做什么。但我必须这样做,而不仅仅是'Z‘,以便在格式化moment对象以使用以下字符串显示时获得我想要的结果: newM.format('YYYY-MM-DD HH:mm:ss.SSSZ')。
编辑:
需要说明的是:我知道'Z‘会导致传递的datetime被视为UTC,按照文档的说法。但是方括号的意义是什么--文档中没有。
发布于 2016-05-06 03:07:28
在格式中使用时,Z不会导致时间被视为协调世界时。它与时区说明符匹配:
Format: Z ZZ
Example: +12:00
Description: Offset from UTC as +-HH:mm, +-HHmm, or Z和format的文档中
要转义格式字符串中的字符,可以将字符括在方括号中。
通过在括号中指定Z,您将匹配文字Z,因此时区将保留为时刻的默认值,即本地时区。
除非指定时区偏移量,否则解析字符串将在当前时区中创建日期。
如果您的时间真的是UTC,这可能不是您想要的行为。如果您希望将其解析为协调世界时,但以本地时间显示,请使用Z,然后对生成的moment对象调用local(),因此您最可能需要的是:
// Parse with timezone specifier (which is UTC here) but convert to local time
newM = moment("2015-08-11T13:00:00.000000Z", "YYYY-MM-DDTHH:mm:ss.SSSSZ", true).local();发布于 2020-11-26 18:42:13
对于由于末尾缺少Z而关心一致性的每个人,请尝试将[Z]添加到您的格式中。
示例:.format('YYYY-MM-DDTHH:mm:ss[Z]'),因此结果为:2019-11-26T10:39:54Z
您可以在此github issue中找到更详细的解释。
https://stackoverflow.com/questions/37057907
复制相似问题