小编lde*_*may的帖子

以原始时区打印日期

假设我的设备在澳大利亚(GMT + 10:00)。

我有一个从API收到的日期“ 2016-04-22T17:45:00 + 02:00”。

我想在原始时区(GMT + 02:00)很好地显示它。

因此,我将SimpleDateFormat与“ yyyy-MM-dd'T'HH:mm:ssZZZZZ”一起使用。

String date = "2016-04-22T17:45:00+02:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZZZZZ");
Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(date));
Run Code Online (Sandbox Code Playgroud)

但是不幸的是,我找不到一种显示日期的干净方法:

sdf.format(cal.getTime());
Run Code Online (Sandbox Code Playgroud)

使用设备时区。

因此,我“手动”解析了日期以提取时区以将其设置在日历中。

cal.setTimeZone(TimeZone.getTimeZone("GMT" + date.substring(date.length() - 6, date.length())));
Run Code Online (Sandbox Code Playgroud)

但这似乎并不能解决问题。

我怎样才能做到这一点?

java android date simpledateformat timestamp-with-timezone

1
推荐指数
1
解决办法
2018
查看次数