2014-02-13 41 views
0

我知道關於JavaScriptString s和Date s有很多問題。但是我找不到解決我的問題的方法。關於區域設置的日期格式字符串

我使用Spring MVC的dateTime字段。該暴露出的問題,我的後端需要一個日期的某種格式(這是不固定的,我可以改變,如果有必要)

@RequestParam(value = PARAM_SELECT_DATE) @org.springframework.format.annotation.DateTimeFormat(pattern = "dd.MM.yyyy") final Date selectDate 

但每次瀏覽器解析選定的日期不同,給了我很頭疼,比如,

de-DE: 13.02.2014 
en-US: Feb 13, 2014 

我無法將每個語言環境轉換爲通用日期格式,以便將其傳遞到後端。

我不想在我的項目中擁有(更多)依賴項,所以如何解析關於語言環境的JS日期,像Date.parse(date, locale)就好。

而且我不想解析日期以醜陋的方式,如

if (navigator.language == 'en-US') { 
    var split = date.split(","); 
    var splitTwo = split[0].split(" "); 
    date = new Date(split[1], splitTwo[0] - 1, splitTwo[1]); // even here I would get 'Feb' instead of 02, another parse method would be needed 
} else if (navigator.language == 'de-DE') { 
    var split = date.split("."); 
    date = new Date(split[2], split[1] - 1, split[0]); 
} 

,如果更多的語言環境產生的方法將不得不延長方法。

如何從日期字符串取決於語言環境的javascript日期對象?

+0

看看這裏 - http://stackoverflow.com/questions/7175462/how-to-convert-localized-date-to-standard-date-in-javascript –

+0

使用外部庫 – Manuel

回答

0

您可以在客戶端預格式化日期:

+(new Date())//timestamp 
(new Date()).toISOString()//ISO string 
(new Date()).toGMTString()//GMT string 
... 
+0

如何從中獲得LOCALE依賴於DATE的字符串?這是問題 – Manuel

+0

可以javascript代碼'新日期(新日期()。toLocaleDateString())'工作在每一個瀏覽?我認爲瀏覽器可能知道如何解析localeDateString。 –

+0

如果您在客戶端上創建日期對象(我認爲是因爲語言環境),您可以在發送到後端之前將其轉換爲通用格式(如我的回答)。您將可以在將來使用新的日期()加載此至少這就是我如何理解您的問題。 –

相關問題