2017-01-16 9 views
2

У меня есть приложение ASP.NET MVC 5, и моя Глобализация/Validation (Globalize 1.2.2) нагрузки:Глобализация/Cldr: Globalize.formatDate (новая дата(), {datetime: "long"}) привела к чему-то вроде «16. januar 2017. 13.30.17 GMT + 1»

<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 (новый Date(), { Дата и время: "длинный"});

дает неожиданный результат. Вместо двоеточия в качестве разделителя времени, я получил точку: «16. januar 2017. 07.57.17 GMT + 1». JSON repository выглядит в моделях «timeFormats» и «dateTimeFormats». Все в порядке с «en» или «de», которое имеет похожие шаблоны времени и даты, определенные в репозитории.

Где я ошибаюсь?

ответ

1

dot не является разделителем, а частью длинного формата даты и времени.

"16. januar 2017. 07.57.17 GMT+1" вывода, который вы получите в длинном формате дата и время в "sr-Latn" местности состоит из (а) формата "16. januar 2017. долго даты, (б) пространство сепаратор " ", и (с) "07.57.17 GMT+1" длинным форматом время.

Примечание dateTimeFormats.long = "{1} {0}" является то, что склеивает даты и времени (то есть пространство сепаратора), dateFormats.long = "dd. MMMM y." (т.е. есть точка в год), и timeFormats.long = "HH:mm:ss z" .

Точки Используется как разделитель времени от "timeSeparator": ".".

Сказав, что, если верить точки за годом неверно или если разделитель должен быть запятой вместо пространства, пожалуйста, файл билет в CLDR: http://unicode.org/cldr/trac/newticket

+1

Даты и пространство между датой и временем. Временной части нет. Вместо точек, разделитель между часами, минутами и секундами должен быть двоеточием (:). –

+1

Временной разделитель происходит от https://github.com/unicode-cldr/cldr-numbers-full/blob/30.0.3/main/sr-Latn/numbers.json#L30 –

+0

Сепаратор времени, находится в "числах .json!». Логически!! Если бы вы не дали мне ссылку на меня, я бы никогда не нашел ее! Thnx! –

Смежные вопросы