全球化/ Cldr :Globalize.formatDate(new Date(), {datetime:"long"}) 导致类似“16. januar 2017. 13.30.17 GMT+1”
Globalize / Cldr : Globalize.formatDate(new Date(), {datetime:"long"}) resulted in something like "16. januar 2017. 13.30.17 GMT+1"
我有 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(新日期(), {日期时间:"long"});
给出了意想不到的结果。相反,冒号作为时间分隔符,我得到了一个点:“16. januar 2017. 07.57.17 GMT+1”。 JSON repository 在 "timeFormats" 和 "dateTimeFormats" 模式下看起来不错。
"en" 或 "de" 一切正常,它们在存储库中定义了类似的时间和日期模式。
我哪里错了?
点不是分隔符,而是长日期时间格式的一部分。
您为 "sr-Latn"
语言环境的长日期时间格式获得的 "16. januar 2017. 07.57.17 GMT+1"
输出由 (a) "16. januar 2017.
长日期格式,(b) a space分隔符 " "
,以及 (c) "07.57.17 GMT+1"
长时间格式。
备注dateTimeFormats.long = "{1} {0}"
is what glues date and time (i.e., space separator), dateFormats.long = "dd. MMMM y."
(i.e., there's a dot after year), and timeFormats.long = "HH:mm:ss z"
.
用作时间分隔符的点来自"timeSeparator": "."
.
话虽如此,如果您认为年份后的 点 不正确,或者分隔符应为 逗号 而不是 space,请将工单填入CLDR:http://unicode.org/cldr/trac/newticket
我有 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(新日期(), {日期时间:"long"});
给出了意想不到的结果。相反,冒号作为时间分隔符,我得到了一个点:“16. januar 2017. 07.57.17 GMT+1”。 JSON repository 在 "timeFormats" 和 "dateTimeFormats" 模式下看起来不错。 "en" 或 "de" 一切正常,它们在存储库中定义了类似的时间和日期模式。
我哪里错了?
点不是分隔符,而是长日期时间格式的一部分。
您为 "sr-Latn"
语言环境的长日期时间格式获得的 "16. januar 2017. 07.57.17 GMT+1"
输出由 (a) "16. januar 2017.
长日期格式,(b) a space分隔符 " "
,以及 (c) "07.57.17 GMT+1"
长时间格式。
备注dateTimeFormats.long = "{1} {0}"
is what glues date and time (i.e., space separator), dateFormats.long = "dd. MMMM y."
(i.e., there's a dot after year), and timeFormats.long = "HH:mm:ss z"
.
用作时间分隔符的点来自"timeSeparator": "."
.
话虽如此,如果您认为年份后的 点 不正确,或者分隔符应为 逗号 而不是 space,请将工单填入CLDR:http://unicode.org/cldr/trac/newticket