转自:
下文讲述使用Calendar类设置时区的方法分享,如下所示:
实现思路:
1.使用TimeZone设置相应的时区
2.使用Calendar类中的setTimeZone方法设置时区
例:
例1: TimeZone.setDefault(TimeZone.getTimeZone("GMT+8")); Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); c.setTime(date); 例2: SimpleDateFormat foo = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println("foo:" + foo.format(new Date())); Calendar gc = GregorianCalendar.getInstance(); System.out.println("gc.getTime():" + gc.getTime()); System.out.println("gc.getTimeInMillis():" + new Date(gc.getTimeInMillis())); // 当前系统默认时区的时间: Calendar calendar = new GregorianCalendar(); System.out.print("时区:" + calendar.getTimeZone().getID() + " "); System.out.println("时间:" + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE)); // 美国洛杉矶时区 TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles"); // 时区转换 calendar.setTimeZone(tz); System.out.print("时区:" + calendar.getTimeZone().getID() + " "); System.out.println("时间:" + calendar.get(Calendar.HOUR_OF_DAY) + ":" + calendar.get(Calendar.MINUTE)); Date time = new Date(); // 1、取得本地时间: java.util.Calendar cal = java.util.Calendar.getInstance(); // 2、取得时间偏移量: int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET); // 3、取得夏令时差: int dstOffset = cal.get(java.util.Calendar.DST_OFFSET); // 4、从本地时间里扣除这些差量,即可以取得UTC时间: cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset)); // 之后调用cal.get(int x)或cal.getTimeInMillis()方法所取得的时间即是UTC标准时间。 System.out.println("UTC:" + new Date(cal.getTimeInMillis())); Calendar calendar1 = Calendar.getInstance(); TimeZone tztz = TimeZone.getTimeZone("GMT"); calendar1.setTimeZone(tztz); System.out.println(calendar.getTime()); System.out.println(calendar.getTimeInMillis()); // SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); // df.setTimeZone(TimeZone.getTimeZone("UTC")); // System.out.println(df.parse("2021-11-20T06:10:03Z").toString()); SimpleDateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); Date t = new Date(); System.out.println(df1.format(t)); System.out.println(df1.format(df1.parse("2021-11-20T12:10:32.231Z")) + "***********"); df1.setTimeZone(TimeZone.getTimeZone("UTC")); System.out.println(df1.format(t)); System.out.println("-----------"); System.out.println(df1.format(df1.parse("2021-11-20T12:10:32.231Z")) + "***********"); System.out.println("2021-11-20T12:10:32.231Z");
原文地址:https://www.jb51.cc/wenti/3279598.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。