将 GMT+ 日期转换为 android 上的本地日期

Posted

技术标签:

【中文标题】将 GMT+ 日期转换为 android 上的本地日期【英文标题】:Convert GMT+ date to local on android 【发布时间】:2017-03-24 14:02:14 【问题描述】:

我需要将 Mon Nov 14 13:36:01 GMT+03:00 2016 等日期转换为本地日期。所以一定是16:36:01

Date serverDate; // Mon Nov 14 13:36:01 GMT+03:00 2016

SimpleDateFormat dateFormat = new SimpleDateFOrmat("hh:mm:ss");
String result = dateFormat.formatDate(serverDate);

结果没有看到 GMT +03:00 并且给了我错误的时间(13:36 而不是 16:36)。

【问题讨论】:

您当地的时区是多少?如果您在 GMT+3,那么 13:36:01 是正确的。 是的,它已经在日期中显示 GMT +3 即 13:36。 【参考方案1】:

所以我只需要创建没有 ZZZZZ 的格式化程序并将时区设置为 GMT。

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.getDefault());
    simpleDateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
    final Date localDate = simpleDateFormat.parse("2016-11-11T09:48:24-05:00");

    SimpleDateFormat dateFormat = new SimpleDateFOrmat("hh:mm:ss");
    String result = dateFormat.formatDate(localDate); //12:48:24

在此之后 localDate 变量的代码时间将是 12:48:24(如果我的 GMT +03:00)。

【讨论】:

以上是关于将 GMT+ 日期转换为 android 上的本地日期的主要内容,如果未能解决你的问题,请参考以下文章

将 GMT 日期时间转换为本地时区日期时间

无法使用 Java 8 将给定的本地日期转换为 GMT 日期 [重复]

用户日期时间设置为 GMT,如何将日期转换为其本地化设置?

如何将日期/时间从 GMT 转换为本地时区

将日期从 GMT 时区转换为本地时区——使用 ISO_OFFSET_DATE_TIME

Android将gmt时间转换为可读日期