如何将偏移量从GMT转换为本地时区?

时间:2014-06-02 10:24:40

标签: java date timezone

我有两个输入:

  • 日期值
  • 表示与GMT
  • 的偏移量的整数(+8或-3等)

使用Java,如何将给定的日期值转换为本地时区的相应日期/时间?在Date类中似乎没有任何时区偏移函数。

谢谢!

2 个答案:

答案 0 :(得分:1)

(如果您不想使用JodaTime)请使用TimeZonesetRawOffset一起使用此答案中的代码:https://stackoverflow.com/a/19378721/360211

答案 1 :(得分:0)

我认为您需要使用TimeZone.getAvailableIDs(rawOffsetinMiliSeconds)来获取时区值。 工作示例:

Date now = new Date();  
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
sdf1.setTimeZone(TimeZone.getTimeZone("UTC"));  
System.out.println(sdf1.format(now));  
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
sdf2.setTimeZone(TimeZone.getTimeZone((TimeZone.getAvailableIDs(5*1000*3600))[0]));  
System.out.println(sdf2.format(now));