【发布时间】:2020-02-06 03:09:39
【问题描述】:
我无法解析以下格式的日期“2020 年 2 月 4 日,下午 3:15:14 GMT-6”
我尝试指定格式但没有成功。
没有指定格式,我收到警告: 弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。 如何从该字符串中获取解析日期?
谢谢。
【问题讨论】:
我无法解析以下格式的日期“2020 年 2 月 4 日,下午 3:15:14 GMT-6”
我尝试指定格式但没有成功。
没有指定格式,我收到警告: 弃用警告:提供的值不是可识别的 RFC2822 或 ISO 格式。 如何从该字符串中获取解析日期?
谢谢。
【问题讨论】:
不幸的是,Moment 没有像 GMT-6 这样的偏移量的解析令牌。偏移量必须至少为两位数才能正确使用Z 令牌。您可以在解析之前使用正则表达式替换来更改您的字符串。
var input = 'February 4, 2020, 3:15:14 PM GMT-6';
var adjusted = input.replace(/(GMT\+|-)([1-9])/, '$10$2');
var m = moment.parseZone(adjusted, 'MMMM D, YYYY, h:mm:ss A [GMT]Z');
m.format() //=> "2020-02-04T15:15:14-06:00"
(可能对正则表达式进行改进,但这个可行。)
【讨论】: