Java Calendar如何设置时区呢?

转自:

Java Calendar如何设置时区呢?

下文讲述使用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");

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...