您现在的位置是:首页 > Java 当前栏目 java时区转换 JAVA 2023-03-02 11:01:20 时间 包括将世界标准时间转换为本地时间和将世界标准时间转换为目标时区的本地时间,以及将本地时间转换为世界标准时间。 /** * @author j.tommy * @version 1.0 * @date 2017/12/10 */ public final class DateUtil { /** * 将世界标准时间转换为本地时间 * @param gmtDate * @return */ public static Date convertGMT2Local(Date gmtDate) { Calendar c = Calendar.getInstance(); c.setTime(gmtDate); int zoneOffset = c.get(Calendar.ZONE_OFFSET); int dstOffset = c.get(Calendar.DST_OFFSET); c.add(Calendar.MILLISECOND,zoneOffset+dstOffset); return c.getTime(); } /** * 将世界标准时间转换为目标时区的本地时间 * @param gmtDate * @param id * @return */ public static Date convertGMTToLocal(Date gmtDate, String id) { Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")); calendar.setTime(gmtDate); calendar.setTimeZone(TimeZone.getTimeZone(id)); int zoneOffset = calendar.get(Calendar.ZONE_OFFSET); int dstOffset = calendar.get(Calendar.DST_OFFSET); calendar.add(Calendar.MILLISECOND, dstOffset+zoneOffset); return calendar.getTime(); } /** * 将本地时间转换为世界标准时间 * @param date * @return */ public static Date convertToGMT(Date date) { //Local Time Zone Calendar Instance Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int zoneOffset = calendar.get(Calendar.ZONE_OFFSET); int dstOffset = calendar.get(Calendar.DST_OFFSET); calendar.add(Calendar.MILLISECOND, -(dstOffset+zoneOffset)); return calendar.getTime(); } public static void main(String[] args) { String gmtDateString = "2017-12-10T04:10:01.794Z"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); try { Date gmtDate = sdf.parse(gmtDateString); Date localDate = convertGMT2Local(gmtDate); System.out.println(sdf2.format(localDate)); // for (String id : TimeZone.getAvailableIDs()) { // System.out.println(id); // } localDate = convertGMTToLocal(gmtDate,"Asia/Hong_Kong"); System.out.println(sdf2.format(localDate)); gmtDate = convertToGMT(localDate); System.out.println(sdf.format(gmtDate)); } catch (ParseException e) { e.printStackTrace(); } } } 参考:[http://blog.csdn.net/calkee/article/details/50879383][http_blog.csdn.net_calkee_article_details_50879383] [http://blog.csdn.net/tjgykhulj/article/details/68953636][http_blog.csdn.net_tjgykhulj_article_details_68953636] [http_blog.csdn.net_calkee_article_details_50879383]: http://blog.csdn.net/calkee/article/details/50879383 [http_blog.csdn.net_tjgykhulj_article_details_68953636]: http://blog.csdn.net/tjgykhulj/article/details/68953636 本文地址: java时区转换 相关文章 java元注解 Java面试总结 java实现缓存 Java面试--SpringIOC java switch语句 Java操作excel Java BigDecimal详解 【Java】注解Annotation Java异常机制 JAVA-jstat 详解 Java基础--小结 Java: @Inject注解 java解析excel Java文件File Java之NIO java.io.File Java体系结构 java题目(一) java引用类型 JAVA解析Excel