首页 >Java >java教程 >如何在时区之间准确转换 Java 日期/时间对象?

如何在时区之间准确转换 Java 日期/时间对象?

DDD
DDD原创
2024-11-28 11:14:15639浏览

How Can I Accurately Convert Java Date/Time Objects Between Time Zones?

在 Java 中将日期/时间转换为特定时区

问题:

转换日期和时间在 Java 中,从一个时区到另一个时区可能具有挑战性。用户提供的用于将当前时间从 GMT 转换为 GMT 13 的代码看起来很简单,但在设置特定时间时,同样的方法会失败。用户质疑为什么在这种情况下使用本地计算机的时区。

解决方案:

当创建一个没有显式时区,假定时间采用 UTC。但是,当使用毫秒在 Calendar 对象上设置时间时(如在 calendar.setTime(new Date(1317816735000L)) 中),假设时间位于主机的时区。

To为了克服这个问题,您可以在格式化时间之前显式设置 SimpleDateFormat 对象的时区:

此代码将返回指定时区(GMT 13)中的日期作为字符串。

自定义日期/时间转换的步骤:

  1. 创建日历对象并设置时间和日期。
  2. 使用指定初始时区sdf.setTimeZone(TimeZone.getTimeZone("GMT")).
  3. 使用 sdf.format(calendar.getTime()) 格式化时间。
  4. 将所需的时区设置为 SimpleDateFormat 对象使用 sdf.setTimeZone(TimeZone.getTimeZone("GMT 13"))。
  5. 使用新时区重新格式化时间以获得转换后的值。

以上是如何在时区之间准确转换 Java 日期/时间对象?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn