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



我使用 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。如果我错过了什么,请告诉我。

#Date.toString()将以本地时区打印日期。

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

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));
}

尝试:

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
convertLocalToUTC

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

相关内容

  • 没有找到相关文章