【发布时间】:2014-07-22 10:34:51
【问题描述】:
我有两个输入:
- 日期值
- 一个整数(+8 或 -3 等),表示与 GMT 的偏移量
使用 Java,如何将给定的日期值转换为本地时区的相应日期/时间? Date 类中似乎没有任何时区偏移功能。
谢谢!
【问题讨论】:
我有两个输入:
使用 Java,如何将给定的日期值转换为本地时区的相应日期/时间? Date 类中似乎没有任何时区偏移功能。
谢谢!
【问题讨论】:
(如果您不想使用JodaTime)使用TimeZone 和setRawOffset 以及来自此答案的代码:https://stackoverflow.com/a/19378721/360211
【讨论】:
我认为您需要使用 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));
【讨论】: