使用 moment.js 解析日文日期字符串
Parse japanese datestring with moment.js
如何解析?
'2015年 Oct月10日 (Sat)'
用矩js?
我一直在努力
moment('2015年 Oct月10日 (Sat)', ['DD-MM','DD-MMM','YYYY MMMM DD']);
无济于事..
一旦你删除日文字符,它就全部工作 fine.at 至少我测试过。
var test = moment('2015年 Oct月10日 (Sat)'.match(/[a-zA-Z0-9]/g).join(""),"YYYY-MMM-DD");
test.toLocaleString();
//output : "Sat Oct 10 2015 00:00:00 GMT+0900"
这很好用:
moment('2015年 Oct月10日 (Sat)','YYYY- MMM-DD-');
// ^^^
您只是缺少年的占位符。 -
作为 "ignore this char" 字符。
Moment 有很好的国际化支持。但是,您似乎混合使用了英文短月份名称和日文字符。
moment 中日语的默认本地化数据使用数字月份。您可以在此处查看短月份名称的加载数据:
moment.locale('ja');
moment.monthsShort()
// ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
但是,您可以轻松自定义语言环境数据,如 here 所述。
moment.locale('ja', {monthsShort: ["Jan月", "Feb月", "Mar月", "Apr月", "May月", "Jun月", "Jul月", "Aug月", "Sep月", "Oct月", "Nov月", "Dec月"]});
现在当您检查短月份数据时,您会看到您提供的值。
现在所有的普通矩函数都会使用这个数据,所以你可以像这样简单地解析:
moment.locale('ja');
var m = moment('2015年 Oct月10日 (Sat)', 'll');
请注意,ll
格式不会包含额外的星期几信息,但 moment 的解析器会原谅它。
调整语言环境数据而不是剥离内容的好处是,您现在还可以使用 moment 的 format
函数来创建输出字符串,并且它将使用相同的样式。
moment.locale('ja');
var d = moment().format('今: YYYY年M月D日 (ddd) HH時mm分ss秒');
console.log(d);
-> 今: 2018年10月9日 (火) 11時03分06秒
如何解析?
'2015年 Oct月10日 (Sat)'
用矩js?
我一直在努力
moment('2015年 Oct月10日 (Sat)', ['DD-MM','DD-MMM','YYYY MMMM DD']);
无济于事..
一旦你删除日文字符,它就全部工作 fine.at 至少我测试过。
var test = moment('2015年 Oct月10日 (Sat)'.match(/[a-zA-Z0-9]/g).join(""),"YYYY-MMM-DD");
test.toLocaleString();
//output : "Sat Oct 10 2015 00:00:00 GMT+0900"
这很好用:
moment('2015年 Oct月10日 (Sat)','YYYY- MMM-DD-');
// ^^^
您只是缺少年的占位符。 -
作为 "ignore this char" 字符。
Moment 有很好的国际化支持。但是,您似乎混合使用了英文短月份名称和日文字符。
moment 中日语的默认本地化数据使用数字月份。您可以在此处查看短月份名称的加载数据:
moment.locale('ja');
moment.monthsShort()
// ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"]
但是,您可以轻松自定义语言环境数据,如 here 所述。
moment.locale('ja', {monthsShort: ["Jan月", "Feb月", "Mar月", "Apr月", "May月", "Jun月", "Jul月", "Aug月", "Sep月", "Oct月", "Nov月", "Dec月"]});
现在当您检查短月份数据时,您会看到您提供的值。
现在所有的普通矩函数都会使用这个数据,所以你可以像这样简单地解析:
moment.locale('ja');
var m = moment('2015年 Oct月10日 (Sat)', 'll');
请注意,ll
格式不会包含额外的星期几信息,但 moment 的解析器会原谅它。
调整语言环境数据而不是剥离内容的好处是,您现在还可以使用 moment 的 format
函数来创建输出字符串,并且它将使用相同的样式。
moment.locale('ja');
var d = moment().format('今: YYYY年M月D日 (ddd) HH時mm分ss秒');
console.log(d);
-> 今: 2018年10月9日 (火) 11時03分06秒