格式化与语言环境相关的字符串

时间:2014-02-13 08:59:18

标签: javascript parsing date

我知道有很多关于JavaScriptStringDate的问题。但我无法找到解决问题的方法。

我正在使用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]);
}

如果出现更多语言环境,则该方法必须扩展该方法。

如何从日期字符串中获取取决于区域设置的日期字符串?

2 个答案:

答案 0 :(得分:0)

您可以在客户端预先格式化日期:

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

答案 1 :(得分:0)

Globalize的date parsing module可能会做你需要的!