DateTimeZone.convertLocalToUTC时区后仍然显示本地

时间:2013-10-16 08:38:02

标签: java time timezone jodatime timestamp-with-timezone

我使用DateTimeZone.convertLocalToUTC将本地时间转换为UTC。时间已正确更改,但转换后,时区信息仍显示原始本地时区。请参考下面的示例代码

Date gmttime = new Date(tz.convertLocalToUTC(System.currentTimeMillis(),false));
System.out.println(gmttime.toString());

输出: 10月16日星期三12:58:19 IST 2013

请注意粗体值,我预计它会 UTC 。如果我遗失了什么,请告诉我。

3 个答案:

答案 0 :(得分:1)

#Date.toString()将在当地时区打印日期。

使用SimpleDateFormat打印针对特定Date格式化的TimeZone

public static void main(String[] args) {
    Date date = new Date();
    SimpleDateFormat format = new SimpleDateFormat("E MMM  dd HH:mm:ss:SS z");
    format.setTimeZone(TimeZone.getTimeZone("UTC"));
    System.out.println(format.format(date));
}

答案 1 :(得分:1)

尝试:

final Date date = new Date();
final String ISO_FORMAT = "E MMM dd HH:mm:ss zzz yyyy";
final SimpleDateFormat sdf = new SimpleDateFormat(ISO_FORMAT);
final TimeZone utc = TimeZone.getTimeZone("UTC");
sdf.setTimeZone(utc);
System.out.println(sdf.format(date));

输出:

Wed Oct 16 08:53:50 UTC 2013

答案 2 :(得分:1)

convertLocalToUTC使用相同的本地时间将本地时刻转换为标准UTC时刻。 http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTimeZone.html