我有两个输入:
- 日期值
- 一个整数(+8或-3等),表示与GMT 的偏移量。
使用Java,如何将给定的日期值转换为本地时区中相应的日期/时间?在Date类中似乎没有任何时区偏移函数。
谢谢!
(如果您不想使用JodaTime)使用TimeZone
与setRawOffset
的代码从这个答案:https://stackoverflow.com/a/19378721/360211
我认为你需要使用timezone . getavailableids (rawoffsetinmilliseconds)来获得一个时区值。工作的例子:
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));