【问题标题】:Get user’s current default time zone within a Vaadin 8 app在 Vaadin 8 应用程序中获取用户当前的默认时区
【发布时间】:2017-08-29 00:42:39
【问题描述】:

有没有办法从 Vaadin 8.1 应用程序中确定用户 Web 浏览器的当前默认时区?

最好获取ZoneId 对象而不是旧类TimeZone

WebBrowser 类为getCurrentDate()getDSTSavings()getRawTimezoneOffset()getTimezoneOffset()isDSTInEffect() 提供getter 方法。但这些都不是ZoneId。单纯的偏移不是时区。时区是特定区域的offset-from-UTC 的历史记录,涵盖过去、现在和未来的变化,例如Daylight Saving Time (DST)

我知道,最终了解用户所需/预期时区的唯一可靠方法是在我的应用中明确询问他们。但最好能将猜测作为默认值。


proposed duplicate 不是重复的,询问获取当前日期时间,而我的问题是关于时区。此外,我的问题是关于现代 java.time 类,而提议的问题是关于有缺陷的遗留日期时间类。

【问题讨论】:

  • @cfrick 不,不是重复的。我问的是时区,而不是当前时间。查看我的编辑。
  • WebBrowser 也保存偏移量。目前没有更多(JS/浏览器没有更多提供)
  • @cfrick 如果您对没有其他选择有信心,请将其作为答案让我接受并关闭问题。并请撤回不正确的重复提案。

标签: browser timezone vaadin default vaadin8


【解决方案1】:

查询WebBrowser(或任何其他Vaadin API)的替代方法是使用客户端IP address 并使用在线服务获取地理信息,包括ZoneId。

查看相关问题:

【讨论】:

  • 嗯,如果您将地理信息用于此目的,您可能是对的,“一种解决方法”。但是,在许多情况下,您将在更广泛的背景下使用地理数据,然后这种方法可能更好恕我直言(关注点分离)
  • 我建议将其添加到您的答案中。
猜你喜欢
  • 2012-03-17
  • 2014-02-04
  • 2016-02-28
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
相关资源
最近更新 更多