1

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

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

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

请注意粗体值,我希望它是UTC。如果我遗漏了什么,请告诉我。

4

3 回答 3

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));
}
于 2013-10-16T08:45:37.670 回答
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
于 2013-10-16T08:54:24.093 回答
1

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

于 2013-10-16T09:05:45.857 回答