2017-01-16 4 views
2

입니다. ASP.NET MVC 5 응용 프로그램이 있습니다. 내 세계화/검증 부하 있습니다 (1.2.2 세계화) :Globalize/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 (새로운 날짜(), { datetime : "long"}));

예기치 않은 결과가 나타납니다. 시간 구분 기호로 콜론 대신 점을 찍었습니다. "16. januar 2017. 07.57.17 GMT +1". JSON repository은 "timeFormats"및 "dateTimeFormats"패턴에서 정상으로 보입니다. "en"또는 "de"로 모든 항목이 정상이며 저장소와 비슷한 시간 및 날짜 패턴을 정의합니다.

어디서 잘못 되었나요?

답변

1

도트은 구분 기호가 아니며 긴 datetime 형식의 일부입니다.

는 (a) "16. januar 2017. 날짜 형식으로 구성되어 "sr-Latn" 로케일의 긴 날짜 형식 얻는 "16. januar 2017. 07.57.17 GMT+1" 출력 (b)의 공간 분리 " ", 및 (c) "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

에서 가져옵니다. 시간 구분 기호는 "numbers .json! " 논리적으로 !! 나에게 나에게 링크를주지 않았다면, 나는 결코 그것을 발견하지 못했을 것이다! Thnx! –