将中文日期转换为英文
我需要将2017年12月27日
转换为英文日期。要转换我尝试:将中文日期转换为英文
moment("2017年12月27日", 'DDMMMMYYYY, HH:mm:ss', 'zh-cn').locale('en').toISOString();
,但它给了什么,但null
。这可能是什么原因?我怎样才能将它转换成英文日期?
回答:
您的输入格式字符串错误。它应该与您给出的顺序相匹配(如年份,然后是月份等)。
你也应该包含特殊字符(如果有的话)。
console.log(moment("2017年12月27日", 'YYYY年MM月DD日', 'en', true).toISOString());
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
回答:
您的格式参数不正确,'DDMMMMYYYY, HH:mm:ss'
不匹配您的输入(2017年12月27日
)。
2017年12月27日
不是ISO 8601格式(因为它包括chineses字母代替-
),但它是由moment(String)
解析器因为它使用forgiving mode缺省认可。
特殊字符可以使用方括号[]
转义,如文档Escaping characters部分所示。
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'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment-with-locales.min.js"></script>
在我的示例代码中,我用localeData()
和longDateFormat()
获得中国特定格式的令牌。
以上是 将中文日期转换为英文 的全部内容, 来源链接: utcz.com/qa/265815.html