Globalize.format不将日期格式化为“dd / MM / yyyy”格式

时间:2015-04-21 04:13:39

标签: javascript javascript-globalize

我正在使用Globalize.js格式化日期。但它与德国文化(de-DE)和日期格式“dd / MM / yyyy”无法正常工作

我已将系统区域设置更改为德国文化,并将浏览器文化更改为德语。

我使用以下行转换日期:

Globalize.format(new Date(), "dd/MM/yyyy", "de-DE");

预期输出为21/04/2015,但实际输出为21.04.2015

为什么使用.符号而不是/符号转换日期?

2 个答案:

答案 0 :(得分:2)

该库正在将/视为特定于本地化的分隔符的占位符。对于de-DE,公共分隔符为.而不是/

如果你想保留斜线,你可以引用它们来禁用替换:

console.log(Globalize.format(new Date(), "dd/MM/yyyy", "de-DE"));
console.log(Globalize.format(new Date(), "dd'/'MM'/'yyyy", "de-DE"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/globalize/0.1.1/globalize.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/globalize/0.1.1/cultures/globalize.culture.de-DE.js"></script>

答案 1 :(得分:1)

原因是21.04.2015是传统的德国日期格式。请参阅Date Format By Country并向下滚动到Germany

如果你想要21/04/2015,你可以试试这个:

Globalize.format(new Date(), "dd/MM/yyyy"); // without the culture

下面是一个可运行的代码段,可以看到这一点:

&#13;
&#13;
var date = document.getElementById('date');

date.innerHTML = Globalize.format(new Date(), "dd/MM/yyyy");
&#13;
<div id="date">this becomes the date in the correct format</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/globalize/0.1.1/globalize.min.js"></script>
&#13;
&#13;
&#13;