• Java中TimeZone类的常用方法


    一、TimeZone类的定义

    TimeZone类是一个抽象类,主要包含了对于时区的各种操作,可以进行计算时间偏移量或夏令时等操作


    二、TimeZone类的常用方法

      1、getAvailableIDs()

    getAvailableIDs()
    获取Java支持的所有时区ID
    System.out.println(Arrays.toString(TimeZone.getAvailableIDs()));

    getAvailableIDs(int rawOffset)
    根据 时间偏移量 来获取时区ID
    System.out.println(Arrays.toString(TimeZone.getAvailableIDs(28800000)));


    2、getDefault()

    获取当前系统的默认时区,中国默认为东八区
    // sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
    // dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
    System.out.println(TimeZone.getDefault());

     

    3、setDefault(TimeZone zone)

    设置当前系统的默认时区
    TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
    // sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,
    // dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
    System.out.println(TimeZone.getDefault());

     

    4、getTimeZone()

    getTimeZone(String ID)
    根据 时区ID 来获取其对应的时区
    // sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
    // dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
    System.out.println(TimeZone.getTimeZone("GMT+08:00"));


    getTimeZone(ZoneId zoneId)
    根据 ZoneId 对象来获取其对应的时区
    // sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
    // dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
    System.out.println(TimeZone.getTimeZone(ZoneId.of("GMT+08:00")));

     

    5、getDisplayName()

    getDisplayName()
    获取该TimeZone对象的时区名称
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.getDisplayName()); // 中国标准时间

    getDisplayName(Locale locale)
    获取该TimeZone对象的时区名称
    locale:提供时区名称的区域设置
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.getDisplayName()); // 中国标准时间
    System.out.println(timeZone.getDisplayName(Locale.ENGLISH)); // China Standard Time

    getDisplayName(boolean daylight, int style)
    获取该TimeZone对象的时区名称
    daylight:若为true,则指定夏令时名称;若为false,则指定标准时间名称
    style:
    TimeZone.LONG:显示全称
    TimeZone.SHORT:显示简称


    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.getDisplayName()); // 中国标准时间
    System.out.println(timeZone.getDisplayName(false, TimeZone.LONG)); // 中国标准时间
    System.out.println(timeZone.getDisplayName(false, TimeZone.SHORT)); // CST


    getDisplayName(boolean daylight, int style, Locale locale)
    获取该TimeZone对象的时区名称
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.getDisplayName()); // 中国标准时间
    System.out.println(timeZone.getDisplayName(false, TimeZone.LONG, Locale.ENGLISH)); // China Standard Time


      

    6、setID(String ID)  和getID()

    getID()

    获取该TimeZone对象的时区ID
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.getID()); // Asia/Shanghai

    setID(String ID)

    设置该TimeZone对象的时区ID
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    timeZone.setID("Asia/Chongqing");
    System.out.println(timeZone.getID()); // Asia/Chongqing

    7、getOffset(long date)

    获取该时间所在时区的时间偏移量
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.getOffset(System.currentTimeMillis())); // 28800000

     

    8、getDSTSavings()

    在夏令时规则生效时,返回相对于标准时间提前的毫秒数,如果此时区不实施夏令时,则为 0
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    // 国内没有夏令时,故为0
    System.out.println(timeZone.getDSTSavings()); // 0

     

    9、getRawOffset()

    获取时间原始偏移量,该值不受夏令时的影响,故称为时间原始偏移量
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.getRawOffset()); // 28800000

     

    10、setRawOffset(int offsetMillis)

    设置时间原始偏移量
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    timeZone.setRawOffset(25200000);
    System.out.println(timeZone.getRawOffset()); // 25200000

     

    11、toZoneId()

    将TimeZone对象转换为ZoneId对象
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    ZoneId zoneId = timeZone.toZoneId();
    System.out.println(zoneId); // Asia/Shanghai

     

    12、useDaylightTime()

    查询此时区是否使用夏令时
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.useDaylightTime()); // false

     

    13、inDaylightTime(Date date)

    查询给定的日期是否在此时区的夏令时中
    TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
    System.out.println(timeZone.inDaylightTime(new Date())); // false

     

    14、hasSameRules(TimeZone other)

    如果两时区仅ID不同,且具有相同的规则和时间偏移量,则返回true
    如果另一个时区为空,则返回false
    TimeZone timeZone1 = TimeZone.getTimeZone("Asia/Shanghai");
    TimeZone timeZone2 = TimeZone.getTimeZone("Asia/Chongqing");
    System.out.println(timeZone1.hasSameRules(timeZone2)); // true

    原文:https://blog.csdn.net/goodbye_youth/article/details/81807273

  • 相关阅读:
    std::queue
    关于GridView中如何取得隐藏列的值
    揭秘史上最昂贵的一行Javascript代码
    CentOS 安装 git2.x.x 版本
    error: Some data has already been output, can't send PDF file
    接口和抽象类有什么区别
    php与apache的那些事
    PHP生成PDF完美支持中文,解决TCPDF乱码
    php 表单相关
    快速的去除数组中的指定值
  • 原文地址:https://www.cnblogs.com/jyiqing/p/10623883.html
Copyright © 2020-2023  润新知