将德国日期转换为ISO日期

时间:2018-01-12 08:31:14

标签: javascript node.js momentjs

我正在开发一个Node.js应用程序,我必须将类似am 13. Dezember 2017的德语字符串日期转换为ISO日期,当我使用moment.js库转换它时,我得到了invalid date,任何溶液

4 个答案:

答案 0 :(得分:1)

您可以使用moment(String, String, String)解析13. Dezember 2017,然后使用toISOString()

由于您的输入既不是ISO 8601识别格式,也不是RFC 2822中您必须提供格式参数。 DD代表该月的某一天,MMMM代表月份的名称,YYYY代表4位数的年份。

第三个参数告诉我们使用给定的语言环境解析输入:

  

从版本 2.0.0 开始,区域设置键可以作为第三个参数传递给moment()moment.utc()

请注意,您必须导入de区域设置才能使其正常工作(在浏览器中使用moment-with-locales.js/locales/de.js或在节点的Loading locales in NodeJS部分后使用。)

这是一个实例:



var m = moment('13. Dezember 2017', 'DD MMMM YYYY', 'de');
console.log( m.toISOString() );

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment-with-locales.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用toISOString方法,它使用ISO标准将Date对象作为String返回:

var d = new Date();
var n = d.toISOString();

答案 2 :(得分:0)

看看这里:

https://momentjs.com/docs/

你需要这样的东西:

moment('13. Dezember 2017', 'DD. MMMM YYYY', 'de').format(moment.ISO_8601);

答案 3 :(得分:0)

您可以使用以下方式轻松设置格式:

var now = moment(); // pass your date to moment
var formatedNow = moment().toISOString(now);
or
var formatedNow = now.toISOString();