首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >format + Moment.js中[Z]的含义

format + Moment.js中[Z]的含义
EN

Stack Overflow用户
提问于 2016-05-06 02:38:55
回答 2查看 26.1K关注 0票数 8

我想知道这是做什么的:

代码语言:javascript
复制
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,按照文档的说法。但是方括号的意义是什么--文档中没有。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-06 03:07:28

在格式中使用时,Z不会导致时间被视为协调世界时。它与时区说明符匹配:

代码语言:javascript
复制
Format: Z ZZ
Example: +12:00
Description: Offset from UTC as +-HH:mm, +-HHmm, or Z

format的文档中

要转义格式字符串中的字符,可以将字符括在方括号中。

通过在括号中指定Z,您将匹配文字Z,因此时区将保留为时刻的默认值,即本地时区。

除非指定时区偏移量,否则解析字符串将在当前时区中创建日期。

如果您的时间真的是UTC,这可能不是您想要的行为。如果您希望将其解析为协调世界时,但以本地时间显示,请使用Z,然后对生成的moment对象调用local(),因此您最可能需要的是:

代码语言:javascript
复制
// 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();
票数 5
EN

Stack Overflow用户

发布于 2020-11-26 18:42:13

对于由于末尾缺少Z而关心一致性的每个人,请尝试将[Z]添加到您的格式中。

示例:.format('YYYY-MM-DDTHH:mm:ss[Z]'),因此结果为:2019-11-26T10:39:54Z

您可以在此github issue中找到更详细的解释。

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37057907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档