如何在java中将UTC转换为PST

时间:2012-03-15 18:43:22

标签: java utc gmt

我正在尝试将时区从UTC转换为GMT。我已经尝试了几次,甚至也使用了你的引导方法。我正在以GMT格式获得正确计时的输出,但随着“PDT 2012”一起编写。为什么这样..??我已经尝试了数百种方法,但无法摆脱它。

请帮帮我。

由于

2 个答案:

答案 0 :(得分:2)

对于Java中的所有Date /或DateTime相关操作,我建议使用JodaTime Library

使用具有不同观点(日历,时区)的日期/时间以及计算是非常有用的:添加/减少月,年,日等等......

从Java 8开始,JodaTime的等效(改进)包含在新包java.time(JSR-310)下的JDK中,不再需要将其添加为依赖项。 JodaTime的作者在blog中解释了JodaTime和JSR-310之间的区别。

答案 1 :(得分:1)

也许以下将是一个起点。它会将您当前的日期转换为GMT:

    SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy");
    Calendar cal = Calendar.getInstance();
    System.out.println(cal.getTime());
    TimeZone currentTimeZone = cal.getTimeZone();
    int offset = currentTimeZone.getOffset(cal.getTimeInMillis());
    Date adjustedTime = new Date(cal.getTimeInMillis() - offset);
    dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
    System.out.println(dateFormat.format(adjustedTime));

几点说明:

  • 您可能无法看到PST更改为UTC,因为您没有按日期格式设置时区
  • 您不应该再使用像“GMT”这样的缩写词了。最好在id字段中使用全名。
  • 如果您碰巧在默认时间已设置为GMT的系统上运行上述代码,则必须更有创意。