3

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

4

1 回答 1

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 将呈现您希望客户端看到的格式。Then, when a date is picked, you should convert it to your [millis],[timeZoneOffset]custom format before submitting to your controller. 在 Spring/Java 方面,您应该创建并注册一个Date接受此[millis],[timeZoneOffset]格式并创建相应Date对象的自定义转换器。

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

于 2013-10-28T02:49:33.330 回答