2014-02-13 40 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

如果您在客户端上创建日期对象(我认为是因为语言环境),您可以在发送到后端之前将其转换为通用格式(如我的回答)。您将可以在将来使用新的日期()加载此至少这就是我如何理解您的问题。 –

相关问题