gpt4 book ai didi

java - 在 Java 中构建 TimeZone 对象

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:34:37 24 4
gpt4 key购买 nike

我使用 GMT-8、GMT、PST、EST 等时区字符串构建 Java 时区对象。这没有考虑时区是否启用了夏令时。现在需要包括此检查,而不是将输入作为 PDT 或 EDT,夏令时作为单独的标志给出。我不确定 TimeZone 是否有更改该 TimeZone 的夏令时属性的直接方法。

因此,如果我得到像 PST 和 DaylightSaving 这样的输入为真,那么我必须将字符串更改为 PDT。更糟糕的是有时我会得到像 GMT-8 或 GMT-6 这样的输入,日光标志为真或错误的。有出路吗?

我不能使用第三方时区相关类

代码示例:

TimeZone  timeZone = TimeZone.getTimeZone("EST");
TimeZone timeZone = TimeZone.getTimeZone("PST");
TimeZone timeZone = TimeZone.getTimeZone("GMT-8");

最佳答案

像“PST”和“GMT-8”这样的时区字符串通常是模棱两可的,而且通常不会告诉您夏令时规则是否生效。 (例如,“PST”表示“太平洋标准时间”和“巴基斯坦标准时间”。)

如果您想获得正确的时区和夏令时规则,您必须使用完整的时区名称来获取 TimeZone 对象;即形式的名称:“America/Los_Angeles”。

或者使用 ISO 8601 date / time values .

Have to change lots of codes and its little difficult to convince others to get approvals.

好吧,我会说你在这里别无选择......如果你想让你的代码获得正确的时区等。

做一些研究,了解问题,解释你的老板/客户的问题,让他们在无法正确获取夏令时的应用程序和使用更合理的日期格式的应用程序之间做出选择和时区指定方法。

关于java - 在 Java 中构建 TimeZone 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4506333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com