• 解决java获取系统时间差8个小时 专题


    在WIN7下发现一些Java的程序获取系统时间比真实时间差了8个小时,怀疑是Java程序沿用了低版本的JDK,获取时间时取的GSM 0时区,而中国是GSM +8,所以查了8个小时,解决办法如下:

    修改如下:

      Date d = new Date();
      SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd  kk:mm:ss ");
      sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
      System.out.println(sdf.format(d));
        Calendar now = Calendar.getInstance();

             // 获取中国北京时区       
             TimeZone tz = TimeZone.getTimeZone("CCT");//写法1,简写
             tz=TimeZone.getTimeZone("Asia/Shanghai");//写法2,a full name such as"America/Los_Angeles"
             tz=TimeZone.getTimeZone("GMT+08:00");//写法3,custom ID such as "GMT-8:00"

        now.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));//important
        或:
    now.setTimeZone(); System.out.println(now.get(Calendar.HOUR_OF_DAY)); System.out.println(now.get(Calendar.MINUTE)); System.out.println(now.get(Calendar.SECOND));

    这样就可以了。

    关键就是设置TimeZone: TimeZone.getTimeZone("Asia/Shanghai")

    http://wmljava.iteye.com/blog/1236906

    API:

    public static TimeZone getTimeZone(String ID)
    Gets the TimeZone for the given ID.
    Parameters:
    ID - the ID for a TimeZone, either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used.
    Returns:
    the specified TimeZone, or the GMT zone if the given ID cannot be understood.


    时区简写对照表:

    标准时间代码

    与GMT的偏移量

    描述

    NZDT

    +13:00

    新西兰夏令时

    IDLE

    +12:00

    国际日期变更线,东边

    NZST

    +12:00

    新西兰标准时间

    NZT

    +12:00

    新西兰时间

    AESST

    +11:00

    澳大利亚东部夏时制

    CST(ACSST)

    +10:30

    中澳大利亚标准时间

    CADT

    +10:30

    中澳大利亚夏时制

    SADT

    +10:30

    南澳大利亚夏时制

    EST(EAST)

    +10:00

    东澳大利亚标准时间

    GST

    +10:00

    关岛标准时间

    LIGT

    +10:00

    澳大利亚墨尔本时间

    CAST

    +9:30

    中澳大利亚标准时间

    SAT(SAST)

    +9:30

    南澳大利亚标准时间

    WDT(AWSST)

    +9:00

    澳大利亚西部标准夏令时

    JST

    +9:00

    日本标准时间,(USSR Zone 8)

    KST

    +9:00

    韩国标准时间

    MT

    +8:30

    毛里求斯时间

    WST(AWST)

    +8:00

    澳大利亚西部标准时间

    CCT

    +8:00

    中国沿海时间(北京时间)

    JT

    +7:30

    爪哇时间

    IT

    +3:30

    伊朗时间

    BT

    +3:00

    巴格达时间

    EETDST

    +3:00

    东欧夏时制

    CETDST

    +2:00

    中欧夏时制

    EET

    +2:00

    东欧,(USSR Zone 1)

    FWT

    +2:00

    法国冬时制

    IST

    +2:00

    以色列标准时间

    MEST

    +2:00

    中欧夏时制

    METDST

    +2:00

    中欧白昼时间

    SST

    +2:00

    瑞典夏时制

    BST

    +1:00

    英国夏时制

    CET

    +1:00

    中欧时间

    DNT

    +1:00

    Dansk Normal Tid

    FST

    +1:00

    法国夏时制

    MET

    +1:00

    中欧时间

    MEWT

    +1:00

    中欧冬时制

    MEZ

    +1:00

    中欧时区

    NOR

    +1:00

    挪威标准时间

    SET

    +1:00

    Seychelles Time

    SWT

    +1:00

    瑞典冬时制

    WETDST

    +1:00

    西欧光照利用时间(夏时制)

    GMT

    0:00

    格林威治标准时间

    WET

    0:00

    西欧

    WAT

    -1:00

    西非时间

    NDT

    -2:30

    纽芬兰(新大陆)白昼时间

    ADT

    -03:00

    大西洋白昼时间

    NFT

    -3:30

    纽芬兰(新大陆)标准时间

    NST

    -3:30

    纽芬兰(新大陆)标准时间

    AST

    -4:00

    大西洋标准时间(加拿大)

    EDT

    -4:00

    (美国)东部夏令时

    CDT

    -5:00

    (美国)中部夏令时

    EST

    -5:00

    (美国)东部标准时间

    CST

    -6:00

    (美国)中部标准时间

    MDT

    -6:00

    (美国)山地夏令时

    MST

    -7:00

    (美国)山地标准时间

    PDT

    -7:00

    (美国)太平洋夏令时

    PST

    -8:00

    (美国)太平洋标准时间

    YDT

    -8:00

    Yukon夏令时

    HDT

    -9:00

    夏威仪/阿拉斯加白昼时间

    YST

    -9:00

    Yukon标准时

    AHST

    -10:00

    夏威仪-阿拉斯加标准时间

    CAT

    -10:00

    中阿拉斯加时间

    NT

    -11:00

    州时间(Nome Time)

    IDLW

    -12:00

    国际日期变更线,西边



    timeZone可使用的参数:

    America/Belize                      CST          中央标准时间
    America/Cancun                      CST          中央标准时间
    America/Chicago                     CST          中央标准时间
    America/Costa_Rica                  CST          中央标准时间
    America/El_Salvador                 CST          中央标准时间
    America/Guatemala                   CST          中央标准时间
    America/Indiana/Knox                CST          中央标准时间
    America/Indiana/Tell_City           CST          中央标准时间
    America/Knox_IN                     CST          中央标准时间
    America/Managua                     CST          中央标准时间
    America/Menominee                   CST          中央标准时间
    America/Merida                      CST          中央标准时间
    America/Mexico_City                 CST          中央标准时间
    America/Monterrey                   CST          中央标准时间
    America/North_Dakota/Center         CST          中央标准时间
    America/North_Dakota/New_Salem      CST          中央标准时间
    America/Rainy_River                 CST          中央标准时间
    America/Rankin_Inlet                CST          中央标准时间
    America/Regina                      CST          中央标准时间
    America/Swift_Current               CST          中央标准时间
    America/Tegucigalpa                 CST          中央标准时间
    America/Winnipeg                    CST          中央标准时间
    CST                                 CST          中央标准时间
    CST6CDT                             CST          中央标准时间
    Canada/Central                      CST          中央标准时间
    Canada/East-Saskatchewan            CST          中央标准时间
    Canada/Saskatchewan                 CST          中央标准时间
    Mexico/General                      CST          中央标准时间
    SystemV/CST6                        CST          中央标准时间
    SystemV/CST6CDT                     CST          中央标准时间
    US/Central                          CST          中央标准时间
    US/Indiana-Starke                   CST          中央标准时间
    America/Havana                      CST          Cuba Standard Time
    Cuba                                CST          Cuba Standard Time
    Asia/Chongqing                      CST          中国标准时间
    Asia/Chungking                      CST          中国标准时间
    Asia/Harbin                         CST          中国标准时间
    Asia/Kashgar                        CST          中国标准时间
    Asia/Macao                          CST          中国标准时间
    Asia/Macau                          CST          中国标准时间
    Asia/Shanghai                       CST          中国标准时间
    Asia/Taipei                         CST          中国标准时间
    Asia/Urumqi                         CST          中国标准时间
    CTT                                 CST          中国标准时间
    PRC                                 CST          中国标准时间
    ACT                                 CST          中央标准时间(北领地)
    Australia/Adelaide                  CST          中央标准时间(南澳大利亚)
    Australia/Broken_Hill               CST          中央标准时间(南澳大利亚/新南威尔斯)
    Australia/Darwin                    CST          中央标准时间(北领地)
    Australia/North                     CST          中央标准时间(北领地)
    Australia/South                     CST          中央标准时间(南澳大利亚)
    Australia/Yancowinna                CST          中央标准时间(南澳大利亚/新南威尔斯)




  • 相关阅读:
    Mybatis应用
    MyBatis
    jQuery中.bind() .live() .delegate() .on()的区别
    SpringMVC (八)SpringMVC返回值类型
    SpringMVC(七)参数的自动装配和路径变量
    SpringMVC (六)注解式开发
    SpringMVC (五)视图解析器
    SpringMVC (四)MultiActionController
    SourceTree的使用
    Idea中使用git
  • 原文地址:https://www.cnblogs.com/softidea/p/3335523.html
Copyright © 2020-2023  润新知