首页 > 解决方案 > 将日期字符串转换为 UTC 格式

问题描述

我有一个从 API 返回的日期字符串。日期采用这种格式。

2018-10-15T17:52:00Z

现在,我想将此字符串转换为 UTC 日期格式。这是我使用的代码,

private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'";


 try {
        String expiryDateString = "2018-10-15T17:52:00Z";
        final SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT,Locale.US);
        formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
        return formatter.parse(expiryDateString);
     } catch (final ParseException e) {
            return null;
     }

此方法将日期返回为

2018 年 10 月 15 日星期一 13:52:00 EDT

我不能使用 Java 8 函数。有什么方法可以在不使用 Java 8 方法的情况下将字符串转换为 UTC 日期时间?

标签: javaandroidandroid-datedate

解决方案


2018 年 10 月 15 日星期一 13:52:00 EDT

是 date.toString() - Date 类的结果。

日期被正确解析,只是显示方式不同。如果要检查解析是否正确,可以这样检查:

String expiryDateString = "2018-10-15T17:52:00Z";
final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = formatter.parse(expiryDateString);
assertEquals(expiryDateString, formatter.format(date));

推荐阅读