Globalize / Cldr:Globalize.formatDate(new Date(),{datetime:" long"})导致类似" 16。 januar 2017. 13.30.17 GMT + 1"

时间:2017-01-16 07:36:10

标签: javascript c# jquery globalize cldr

我有ASP.NET MVC 5应用程序,我的全球化/验证(全球化1.2.2)加载是:

<script src="~/Scripts/cldr.js"></script>
<script src="~/Scripts/cldr/event.js"></script>
<script src="~/Scripts/cldr/supplemental.js"></script>
<script src="~/Scripts/globalize.js"></script>
<script src="~/Scripts/globalize/number.js"></script>
<script src="~/Scripts/globalize/date.js"></script>
<script src="~/Scripts/jquery.validate.js"></script>
<script src="~/Scripts/jquery.validate.globalize.js"></script>

<script type="text/javascript">
        $.when(
            $.getJSON("@Url.Content("~/Scripts/cldr/supplemental/likelySubtags.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/supplemental/numberingSystems.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/supplemental/timeData.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/supplemental/weekData.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/main/en/numbers.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/main/en/ca-gregorian.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/main/en/timeZoneNames.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/main/sr-Latn/numbers.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/main/sr-Latn/ca-gregorian.json")"),
            $.getJSON("@Url.Content("~/Scripts/cldr/main/sr-Latn/timeZoneNames.json")")
    ).then(function () {
        console.log("start slicing");
        return [].slice.apply(arguments, [0]).map(function (result) {
            console.log("slicing done");
            return result[0];
        });
    }).then(Globalize.load).then(function () {
        Globalize.locale('sr-Latn');
    }).then(console.log("LOADED EVERYTHING"));
</script>

但是现在,当我尝试在浏览器调试器中测试时,命令:

Globalize.formatDate(new Date(),{datetime:&#34; long&#34;});

给出意想不到的结果。相反冒号作为时间分隔符,我得到一个点:&#34; 16。 januar 2017. 07.57.1​​7 GMT + 1&#34;。 JSON repository在&#34; timeFormats&#34;和&#34; dateTimeFormats&#34;图案。 使用&#34; en&#34;或&#34; de&#34;一切都可以,它在存储库中定义了类似的时间和日期模式。

我哪里错了?

1 个答案:

答案 0 :(得分:1)

不是分隔符,而是长日期时间格式的一部分。

"16. januar 2017. 07.57.17 GMT+1"语言环境的长日期时间格式获得的"sr-Latn"输出由(a)"16. januar 2017.长日期格式组成,(b)空格分隔符" " ,和(c)"07.57.17 GMT+1"长时间格式。

注意dateTimeFormats.long = "{1} {0}"是胶合日期和时间(即空格分隔符),dateFormats.long = "dd. MMMM y."(即,年后有)和{{ 3}}

用作时间分隔符的来自timeFormats.long = "HH:mm:ss z"

话虽如此,如果你认为年后的不正确或者如果分隔符应该是逗号而不是空格,请向CLDR申请一张票:"timeSeparator": "."