• 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");
  • 相关阅读:
    如何突破测试/开发程序员思维?一种不一样的感觉......
    链路的实际数据传输速率是多少
    哈希表— —链式实现
    基于SqlSugar的开发框架循序渐进介绍(14)-- 基于Vue3+TypeScript的全局对象的注入和使用
    数据结构(一) -- 队列
    洞察运营机会的数据分析利器
    Scrum敏捷开发企业培训大纲介绍-企业内训
    electron-vite:轻松保护你的 Electron 源代码
    微信小程序隐私授权
    WebGL 切换着色器
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/126497962