查找哪些时区名称是在上午8点

时间:2015-10-18 21:50:32

标签: java mysql timezone

我在MySQL中有一个用户表,其中包含Europe/Paris格式的时区列。我的目标是在我的Java应用程序中找到当前早上8点的用户。

仅使用Europe/Paris无效,因为Europe/BrusselsEurope/Amsterdam具有相同的时区和DST。所以我想在特定时间找到所有可能的名字。

我也不能只使用GMT + 1偏移,因为夏令时会在夏天转移它,并且不会在同一天为每个人切换。

我检查了TimeZone类,但找不到这个。

1 个答案:

答案 0 :(得分:1)

一般来说:

  1. 以UTC格式获取当前时间。
  2. 对于每个时区,请转换为该区域的当地时间。
  3. 如果当地时间是您正在寻找的时间,那么您就是匹配。
  4. 查询具有匹配时区的所有用户。
  5. 几点:

    • 您可以在MySQL或Java中执行此操作。你并没有真正说出你在找什么。

    • 您可以通过限制要测试的时区进行优化。您必须提前确定每个区域的标准和日光偏移,然后将其用作过滤器。

    • 当你检查&#34;它是8AM?&#34; - 你可能不想做一个完全相等的检查,因为它只有8:00:00.000一毫秒。相反,您可能希望针对一系列值进行测试,例如time >= 8:00 AND time < 9:00