将中文日期转换为英文

时间:2017-12-27 14:52:51

标签: javascript date momentjs

我需要将2017年12月27日转换为英文日期。转换我试图:

moment("2017年12月27日", 'DDMMMMYYYY, HH:mm:ss', 'zh-cn').locale('en').toISOString();

但除了null之外什么都没有。这可能是什么原因?如何将其转换为英文日期?

2 个答案:

答案 0 :(得分:3)

您的输入格式字符串错误。它应该与你给出的顺序相匹配(比如第一年,然后是月份等)。

你也应该包含特殊字符(如果有的话)。



console.log(moment("2017年12月27日", 'YYYY年MM月DD日', 'en', true).toISOString());

<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

您的格式参数不正确,'DDMMMMYYYY, HH:mm:ss'与您的输入(2017年12月27日)不匹配。

2017年12月27日不是ISO 8601格式(因为它包含chineses字母而不是-),但它由https://github.com/skewballfox/opencv-practice/blob/master/pi_surveillance.py解析器识别,因为默认情况下它使用moment(String)

可以使用方括号[]对特殊字符进行转义,如文档的forgiving mode部分所示。

&#13;
&#13;
var fmt = moment.localeData('zh-cn').longDateFormat('LL'); // YYYY年M月D日
var m = moment("2017年12月27日", fmt, 'zh-cn');
console.log( m.locale('en').toISOString() );

var m2 = moment("2017年12月27日", 'YYYY[年]M[月]D[日]', 'zh-cn', true);
console.log( m2.locale('en').toISOString() );
console.log( m2.locale('en').format('LLLL') );
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment-with-locales.min.js"></script>
&#13;
&#13;
&#13;

在我的示例代码中,我使用了Escaping characterslongDateFormat()来获取中文特定格式令牌。