Struts2 DateTimePicker是否允许使用特定的区域设置和时区输入日期和时间?

时间:2015-02-18 09:34:21

标签: java struts2 timezone locale datetimepicker

Struts2 DateTimePicker是否支持指定不同的语言环境和时区?

我认为它考虑了请求指定的Locale,但我没有看到文档中任何地方特别提到的。

我也没看到它表示对时区有任何支持。

1 个答案:

答案 0 :(得分:1)

这是一个广泛的主题,但我会尝试减少我所知道的一些事情:

  • 简短的回答是否定的,Struts2集成的Dojo DateTimePicker不允许你这样做。
    如果确实需要支持TimeZones(而非Locales),例如:

      

    美国用户在印度使用其美国Locale笔记本电脑,希望将东京时区的日期时间插入您的网络应用程序。

    它的笔记本电脑的Locale和你的服务器以及他的ISP信息都足够了,那么你需要一些自定义的东西,比如:

    Any+Time™ DatePicker/TimePicker AJAX Calendar Widget

    enter image description here

    因为这不是一个常见的用例,因此您可能需要分叉主要道路。
    也就是说,在谈到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日历或获取以下小部件,改变用户体验很多

    enter image description here

总结:没有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上显示的:

enter image description here

在一个发展迅速的领域,只需2美分。