Struts2 DateTimePicker是否支持指定不同的语言环境和时区?
我认为它考虑了请求指定的Locale,但我没有看到文档中任何地方特别提到的。
我也没看到它表示对时区有任何支持。
答案 0 :(得分:1)
这是一个广泛的主题,但我会尝试减少我所知道的一些事情:
简短的回答是否定的,Struts2集成的Dojo DateTimePicker不允许你这样做。
如果确实需要支持TimeZones(而非Locales),例如:
美国用户在印度使用其美国Locale笔记本电脑,希望将东京时区的日期时间插入您的网络应用程序。
它的笔记本电脑的Locale和你的服务器以及他的ISP信息都足够了,那么你需要一些自定义的东西,比如:
Any+Time™ DatePicker/TimePicker AJAX Calendar Widget
因为这不是一个常见的用例,因此您可能需要分叉主要道路。
也就是说,在谈到Struts2 Dojo标签,Struts2 jQuery插件,HTML5和日期时间选择器时,还有一些值得注意的事项:
许多Struts2 Dojo标记早已被弃用。这些标签基于Dojo的旧/错误版本,未与当前版本对齐,因此可能存在问题。显然,Struts2 Dojo DateTimePicker仍然活着,但我建议不要使用它。
有一个Struts2 jQuery插件,主动维护,并基于一个非常新的jQuery版本。它有一个DateTimePicker,即使有一些bug,can be used comfortably也是如此。否则,请考虑使用原始jQuery和DateTimePicker Plugin。
现在,重要的是(主要是支持移动浏览)始终使用原生HTML5 <input type="date"/>
和<input type="datetime-local" />
,以及(很多)的后备尚不支持原生HTML5小部件的情况(例如Firefox,IE等)。经典浏览存在细微差别(除了HTML5小部件不使用javascript打开日历这一事实,因此它可以在禁用javascript的浏览器中运行),但是在移动浏览中存在巨大差异,因为当你有一个小巧,高分辨率的屏幕,只有手指点击,获得一个小的jQuery日历或获取以下小部件,改变用户体验很多:
总结:没有Struts-Dojo,是jQuery,但仅限于HTML5日期/时间不可用。
也就是说,Dojo,jQuery和HTML5解决方案都不包含TimeZone数据。
HTML5日期时间的变体包含Locale(但没有TimeZone)信息,<input type="datetime-local" />
,但是the support for datetime and datetime-local is scarce today,您还不能依赖它。
这是因为 they're still working drafts,而不是标准,因此必须使用后备版(即使您的用户被迫使用今天支持它们的单个浏览器)。
在this demo中尝试使用Chrome,例如,检查它的工作原理以及渲染方式。例如,它是如何在Opera上显示的:
在一个发展迅速的领域,只需2美分。