我使用 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