【问题标题】:Globalize.format not formatting the date to "dd/MM/yyyy" formatGlobalize.format 未将日期格式化为“dd/MM/yyyy”格式
【发布时间】:2015-04-21 04:13:39
【问题描述】:

我正在使用Globalize.js 来格式化日期。但它不适用于德国文化 (de-DE) 和日期格式“dd/MM/yyyy”

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

我正在使用以下行来转换日期:

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

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

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

【问题讨论】:

  • 你能提供一些可重现的代码吗?

标签: javascript javascript-globalize


【解决方案1】:

库将/ 也视为本地化特定分隔符的占位符。对于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>

【讨论】:

    【解决方案2】:

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

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

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

    下面是一个可运行的代码 sn-p 来查看它的实际效果:

    var date = document.getElementById('date');
    
    date.innerHTML = Globalize.format(new Date(), "dd/MM/yyyy");
    <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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-18
      • 2018-09-01
      • 1970-01-01
      • 2016-01-02
      • 1970-01-01
      • 2015-09-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多