我需要将2017年12月27日
转换为英文日期。转换我试图:
moment("2017年12月27日", 'DDMMMMYYYY, HH:mm:ss', 'zh-cn').locale('en').toISOString();
但除了null
之外什么都没有。这可能是什么原因?如何将其转换为英文日期?
答案 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;
答案 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部分所示。
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;
在我的示例代码中,我使用了Escaping characters和longDateFormat()
来获取中文特定格式令牌。