zoukankan      html  css  js  c++  java
  • 夏令时计算

    1.首先确定要计算时间的时区,jdk8支持,根据时区ID来判断是否处于夏令时。

    2.根据要判断时区的id和对应的时间,即可判断出是否处于夏令时。

    
    
    public static boolean currentTimeIsDaylightTime(long time) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(new Date(time));
    calendar.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));

    int year = calendar.get(calendar.YEAR);
    int month = calendar.get(calendar.MONTH) + 1;
    int dayOfMonth = calendar.get(calendar.DATE);
    int hour = calendar.get(calendar.HOUR_OF_DAY);
    int minute = calendar.get(calendar.MINUTE);

    LocalDateTime local = LocalDateTime.of(year, month, dayOfMonth, hour, minute);
    return isDaylightTime(local, ZoneId.of(Brasil_Time_Zone));
    }
    //传入指定时间和时区,判断是否处于夏令时之中
    public static boolean isDaylightTime(LocalDateTime localDateTime, ZoneId zoneId) {
    ZonedDateTime zonedDateTime = localDateTime.atZone(zoneId);
    ZoneRules rules = zoneId.getRules();
    return rules.isDaylightSavings(zonedDateTime.toInstant());
    }


    附录:java主要城市时区对照表
    1.     <timezone id="Asia/Shanghai">中国标准时间 (北京)</timezone>  
    2.     <timezone id="Asia/Hong_Kong">香港时间 (香港)</timezone>  
    3.     <timezone id="Asia/Taipei">台北时间 (台北)</timezone>  
    4.     <timezone id="Asia/Seoul">首尔</timezone>  
    5.     <timezone id="Asia/Tokyo">日本时间 (东京)</timezone>  
    6.     <timezone id="America/New_York">美国东部时间 (纽约)</timezone>  
    7.     <timezone id="America/Denver">美国山区时间 (丹佛)</timezone>  
    8.     <timezone id="America/Costa_Rica">美国中部时间 (哥斯达黎加)</timezone>  
    9.     <timezone id="America/Chicago">美国中部时间 (芝加哥)</timezone>  
    10.     <timezone id="America/Mexico_City">美国中部时间 (墨西哥城)</timezone>  
    11.     <timezone id="America/Regina">美国中部时间 (里贾纳)</timezone>  
    12.     <timezone id="America/Los_Angeles">美国太平洋时间 (洛杉矶)</timezone>  
    13.     <timezone id="Pacific/Majuro">马朱罗</timezone>  
    14.     <timezone id="Pacific/Midway">中途岛</timezone>  
    15.     <timezone id="Pacific/Honolulu">檀香山</timezone>  
    16.     <timezone id="America/Anchorage">安克雷奇</timezone>  
    17.     <timezone id="America/Tijuana">美国太平洋时间 (提华纳)</timezone>  
    18.     <timezone id="America/Phoenix">美国山区时间 (凤凰城)</timezone>  
    19.     <timezone id="America/Chihuahua">奇瓦瓦</timezone>  
    20.     <timezone id="America/Bogota">哥伦比亚时间 (波哥大)</timezone>  
    21.     <timezone id="America/Caracas">委内瑞拉时间 (加拉加斯)</timezone>  
    22.     <timezone id="America/Barbados">大西洋时间 (巴巴多斯)</timezone>  
    23.     <timezone id="America/Manaus">亚马逊标准时间 (马瑙斯)</timezone>  
    24.     <timezone id="America/St_Johns">纽芬兰时间 (圣约翰)</timezone>  
    25.     <timezone id="America/Santiago">圣地亚哥</timezone>  
    26.     <timezone id="America/Argentina/Buenos_Aires">布宜诺斯艾利斯</timezone>  
    27.     <timezone id="America/Godthab">戈特霍布</timezone>  
    28.     <timezone id="America/Montevideo">乌拉圭时间 (蒙得维的亚)</timezone>  
    29.     <timezone id="America/Sao_Paulo">圣保罗</timezone>  
    30.     <timezone id="Atlantic/South_Georgia">南乔治亚</timezone>  
    31.     <timezone id="Atlantic/Azores">亚述尔群岛</timezone>  
    32.     <timezone id="Atlantic/Cape_Verde">佛得角</timezone>  
    33.     <timezone id="Africa/Casablanca">卡萨布兰卡</timezone>  
    34.     <timezone id="Europe/London">格林尼治标准时间 (伦敦)</timezone>  
    35.     <timezone id="Europe/Amsterdam">中欧标准时间 (阿姆斯特丹)</timezone>  
    36.     <timezone id="Europe/Belgrade">中欧标准时间 (贝尔格莱德)</timezone>  
    37.     <timezone id="Europe/Brussels">中欧标准时间 (布鲁塞尔)</timezone>  
    38.     <timezone id="Europe/Sarajevo">中欧标准时间 (萨拉热窝)</timezone>  
    39.     <timezone id="Africa/Brazzaville">西部非洲标准时间 (布拉扎维)</timezone>  
    40.     <timezone id="Africa/Windhoek">温得和克</timezone>  
    41.     <timezone id="Asia/Amman">东欧标准时间 (安曼)</timezone>  
    42.     <timezone id="Europe/Athens">东欧标准时间 (雅典)</timezone>  
    43.     <timezone id="Asia/Beirut">东欧标准时间 (贝鲁特)</timezone>  
    44.     <timezone id="Africa/Cairo">东欧标准时间 (开罗)</timezone>  
    45.     <timezone id="Europe/Helsinki">东欧标准时间 (赫尔辛基)</timezone>  
    46.     <timezone id="Asia/Jerusalem">以色列时间 (耶路撒冷)</timezone>  
    47.     <timezone id="Africa/Harare">中部非洲标准时间 (哈拉雷)</timezone>  
    48.     <timezone id="Europe/Minsk">明斯克</timezone>  
    49.     <timezone id="Asia/Baghdad">巴格达</timezone>  
    50.     <timezone id="Europe/Moscow">莫斯科</timezone>  
    51.     <timezone id="Asia/Kuwait">科威特</timezone>  
    52.     <timezone id="Africa/Nairobi">东部非洲标准时间 (内罗毕)</timezone>  
    53.     <timezone id="Asia/Tehran">伊朗标准时间 (德黑兰)</timezone>  
    54.     <timezone id="Asia/Baku">巴库</timezone>  
    55.     <timezone id="Asia/Tbilisi">第比利斯</timezone>  
    56.     <timezone id="Asia/Yerevan">埃里温</timezone>  
    57.     <timezone id="Asia/Dubai">迪拜</timezone>  
    58.     <timezone id="Asia/Kabul">阿富汗时间 (喀布尔)</timezone>  
    59.     <timezone id="Asia/Karachi">卡拉奇</timezone>  
    60.     <timezone id="Asia/Oral">乌拉尔</timezone>  
    61.     <timezone id="Asia/Yekaterinburg">叶卡捷林堡</timezone>  
    62.     <timezone id="Asia/Calcutta">加尔各答</timezone>  
    63.     <timezone id="Asia/Colombo">科伦坡</timezone>  
    64.     <timezone id="Asia/Katmandu">尼泊尔时间 (加德满都)</timezone>  
    65.     <timezone id="Asia/Almaty">阿拉木图</timezone>  
    66.     <timezone id="Asia/Rangoon">缅甸时间 (仰光)</timezone>  
    67.     <timezone id="Asia/Krasnoyarsk">克拉斯诺亚尔斯克</timezone>  
    68.     <timezone id="Asia/Bangkok">曼谷</timezone>  
    69.     <timezone id="Asia/Irkutsk">伊尔库茨克时间 (伊尔库茨克)</timezone>  
    70.     <timezone id="Asia/Kuala_Lumpur">吉隆坡</timezone>  
    71.     <timezone id="Australia/Perth">佩思</timezone>  
    72.     <timezone id="Asia/Yakutsk">雅库茨克时间 (雅库茨克)</timezone>  
    73.     <timezone id="Australia/Darwin">达尔文</timezone>  
    74.     <timezone id="Australia/Brisbane">布里斯班</timezone>  
    75.     <timezone id="Asia/Vladivostok">海参崴时间 (符拉迪沃斯托克)</timezone>  
    76.     <timezone id="Pacific/Guam">关岛</timezone>  
    77.     <timezone id="Australia/Adelaide">阿德莱德</timezone>  
    78.     <timezone id="Australia/Hobart">霍巴特</timezone>  
    79.     <timezone id="Australia/Sydney">悉尼</timezone>  
    80.     <timezone id="Asia/Magadan">马加丹时间 (马加丹)</timezone>  
    81.     <timezone id="Pacific/Auckland">奥克兰</timezone>  
    82.     <timezone id="Pacific/Fiji">斐济</timezone>  
    83.     <timezone id="Pacific/Tongatapu">东加塔布</timezone>  







  • 相关阅读:
    mini2440 UBoot启动过程完全分析
    Linux Shell常用命令学习(1)
    S3C6410启动模式介绍
    漫画与新媒体的传播思考
    注册表修改启动项
    邮件主题是乱码的原因gbk 在utf8 显示问题
    移动 电话费 套餐
    java 异常的问题讨论
    领结的打法
    c# 字符之间的转换
  • 原文地址:https://www.cnblogs.com/sam-cheng/p/8876109.html
Copyright © 2011-2022 走看看