我正在开发一个多语言的Struts2应用程序,其中有很多操作涉及到
具体而言,我想让英语环境下的日期遵循
因此,我希望更改转换的预期格式。我正在寻找一个明智的解决方案。我已经尝试过的选项:
Calendar
属性。默认类型转换大多数情况下都能正常工作,但在某些地区,我希望更改使用的默认格式。具体而言,我想让英语环境下的日期遵循
yyyy-MM-dd
格式。但是,这样做不起作用(奇怪的是yyyy-MM-dd HH:mm
可以正常工作,但在这种情况下,我不想包含时间部分),因为Struts2期望英语环境下的日期外观不同。因此,我希望更改转换的预期格式。我正在寻找一个明智的解决方案。我已经尝试过的选项:
- A)自己编写
StrutsTypeConverter
。这应该可以解决问题,但我无法将package.properties
文件中指定的格式注入其中。 - B)更改getter/setter对,改用
String
- 可以正常工作,但这不是一个明智的解决方案。
yyyy-MM-dd
,因为它是 RFC 3339 规定的格式。然后,在 HTML5 兼容的浏览器(例如 Chrome)上使用<input type="date"/>
时,它将根据正确的区域设置(例如在意大利为dd/MM/yyyy
,在美国为MM/dd/yyyy
)显示日期,但始终向服务器发送yyyy-MM-dd
。然后,在没有 HTML5 日期支持的浏览器(例如 Firefox)上,您将回退到 JavaScript 日历,它将发送它将显示的内容,您最终将向用户呈现丑陋的yyyy-MM-dd
。 - Andrea Ligiosyyyy.MM.dd.
,这在 Struts2 中是默认的。但在英语环境中,我们的客户习惯于使用yyyy-MM-dd
,这在 Struts2 中并不适用(yyyy/MM/dd
是 Struts2 的默认设置)。 - meskobalazs