How to convert a local date to GMT
本问题已经有最佳答案,请猛点这里访问。
1 2 3 |
上面的代码不会在GMT中打印日期,而是在本地时区打印。 如何从当前日期获得GMT等效日期(假设该程序可以在日本或SFO运行)
这个怎么样 -
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public static void main(String[] args) throws IOException { Test test=new Test(); Date fromDate = Calendar.getInstance().getTime(); System.out.println("UTC Time -"+fromDate); System.out.println("GMT Time -"+test.cvtToGmt(fromDate)); } private Date cvtToGmt( Date date ){ TimeZone tz = TimeZone.getDefault(); Date ret = new Date( date.getTime() - tz.getRawOffset() ); // if we are now in DST, back off by the delta. Note that we are checking the GMT date, this is the KEY. if ( tz.inDaylightTime( ret )){ Date dstDate = new Date( ret.getTime() - tz.getDSTSavings() ); // check to make sure we have not crossed back into standard time // this happens when we are on the cusp of DST (7pm the day before the change for PDT) if ( tz.inDaylightTime( dstDate )){ ret = dstDate; } } return ret; } |
测试结果:
UTC时间 - 5月15日星期二16:24:14 IST 2012
GMT Time - Tue May 15 10:54:14 IST 2012
1 2 3 4 | DateFormat gmtFormat = new SimpleDateFormat(); TimeZone gmtTime = TimeZone.getTimeZone("GMT"); gmtFormat.setTimeZone(gmtTime); System.out.println("Current DateTime in GMT :" + gmtFormat.format(new Date())); |
更一般地说,您可以通过这种方式转换为任何(有效)时区
看到
-
DateFormat
喜欢这个
dateFormatGmt.setTimeZone(TimeZone.getTimeZone("GMT"));