无法将日期从UTC转换为其他时区

时间:2013-04-15 14:04:29

标签: android date timezone simpledateformat

我正在尝试将UTC日期/时间字符串转换为另一个时区。它只显示UTC时区的日期/时间。

以下代码:

        apiDate = "2013-04-16T16:05:50Z";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
        Date date = dateFormat.parse(apiDate);

        Calendar calendar = Calendar.getInstance();
        TimeZone timeZone = calendar.getTimeZone();

        SimpleDateFormat newDateFormat = new SimpleDateFormat("hh:mm aa, MMMM dd, yyyy");
        newDateFormat.setTimeZone(timeZone);
        String newDateString = newDateFormat.format(date);

2 个答案:

答案 0 :(得分:2)

您应该将“解析”SimpleDateFormat设置为UTC。否则,它实际上将在解析时假定您的默认时区:

TimeZone utc = TimeZone.getTimeZone("Etc/UTC");
dateFormat.setTimeZone(utc);

您也不需要构建日历来获取系统默认时区 - 只需使用:

TimeZone defaultZone = TimeZone.getDefault();

答案 1 :(得分:0)

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /shoppe
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^cat/([^/]+)$ sub-category.php?category=$1 [NC,L]re