将 UTC 转换为当前区域设置时间

2022-09-01 03:27:40

我正在从 Web 服务下载一些 JSON 数据。在这个JSON中,我有一些日期/时间值。一切都在 UTC 中。如何分析此日期字符串,以便结果 Date 对象位于当前区域设置中?

例如:服务器返回“2011-05-18 16:35:01”,我的设备现在应显示“2011-05-18 18:35:01”(GMT +2)

我当前的代码:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime"));

答案 1

它有一个设置的时区方法:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime"));

全部完成!


答案 2

因此,您希望通知SimpleDateFormat UTC时区:

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TimeZone utcZone = TimeZone.getTimeZone("UTC");
simpleDateFormat.setTimeZone(utcZone);
Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime"));

要显示:

simpleDateFormat.setTimeZone(TimeZone.getDefault());
String formattedDate = simpleDateFormat.format(myDate);

推荐