在spring mvc和jquery中实现可配置的日期格式

时间:2013-10-23 17:00:52

标签: jquery spring spring-mvc datepicker

我想提供一个选项,在属性文件中为应用程序配置日期格式。 我曾想过在spring中使用转换服务实现它,以及我将用作jquery datepicker的日期格式属性的模型。随着我的进一步发展,我发现SimpleDateFormat和jquery datepicker以不同的模式为相同的格式字符串格式化日期。应该有一个标准,但遗憾的是并非如此。 另外一种方法是什么?

1 个答案:

答案 0 :(得分:1)

我花了一些时间来完全掌握问题是什么,但听起来你知道如何使用Spring进行格式化但是在格式化日期时jquery使用与Java不同的模式这一事实有问题吗?我相信您最好的办法可能就是在您的房产中存储两种模式:

java.date.format=yyyy-MM-dd...
jquery.date.format=yyyy-mm-dd...

显然,这意味着配置需要确保为每个属性使用等效格式,以便它们始终正确转换,但我能看到的唯一选择是创建从jquery到java的自动格式转换器(反之亦然)。

或者,您是否考虑过在提交之前将日期转换为毫秒,然后使用它在Java端重新创建日期?我想,会简单得多。

评论后编辑

听起来目标最终是拥有一个可配置的属性:

date.format=yyyy-mm-dd...

为了避免从jquery的日期格式化标记到Java的日期格式标记的复杂映射,最好以下列形式创建自己的自定义日期格式:

[millis],[timeZoneOffset]

您的属性文件应包含jquery格式字符串,以便Datepicker将呈现您希望客户端看到的格式。然后,在选择日期时,您应该在提交给控制器之前将其转换为[millis],[timeZoneOffset]自定义格式。在Spring / Java端,您应该创建并注册一个接受此Date格式的自定义[millis],[timeZoneOffset]转换器,并创建相应的Date对象。

就个人而言,我认为创建自己的自定义日期格式以解决此问题没有任何问题。您将尝试将jquery映射到Java,以及最终Spring的自定义转换器可以帮助您,从而为您节省很多麻烦。