JAVA 获取时间不正确 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
blackboom
V2EX    Java

JAVA 获取时间不正确

  •  
  •   blackboom
    blackstorm 2015-08-19 22:15:20 +08:00 4034 次点击
    这是一个创建于 3772 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天部署项目时遇到问题
    linux 的系统时间是正确的
    通过 new date 获取的时间比正确时间早了 8 个小时
    程序中有大量的 new date 语句

    安装 JDK 时系统时区是错误的,在后来修改正确的系统时间(上海)

    现在 JAVA 不能获取正确的时间

    怎么修改调整为正确的时间呢?
    第 1 条附言    2015-09-12 23:51:06 +08:00
    17 条回复    2015-08-20 17:37:43 +08:00
    nopy
        1
    nopy  
       2015-08-19 22:20:58 +08:00   1
    把系统时间加 8 个小时。
    unique
        2
    unique  
       2015-08-19 22:22:02 +08:00   1
    重新装一次 JDK
    blackboom
        3
    blackboom  
    OP
       2015-08-19 22:23:50 +08:00
    @nopy 系统时间是正确的
    tianice
        4
    tianice  
       2015-08-19 22:27:38 +08:00   1
    phx13ye
        5
    phx13ye  
       2015-08-19 22:30:28 +08:00   1
    硬件时间同步成 UTC , 自己的环境时区随便怎么搞
    beyondsoft
        6
    beyondsoft  
       2015-08-19 22:38:57 +08:00   1
    设置这个关键变量试试
    TZ='Asia/Shanghai'; export TZ
    blackboom
        7
    blackboom  
    OP
       2015-08-19 22:39:05 +08:00
    @tianice 这个方法不行
    KentY
        8
    KentY  
       2015-08-19 22:44:38 +08:00   1
    你启动你的 server 的时候是不是有个 java_opts -Duser.timezOne=xxxx ? 导致你的 server 运行在 xxxx timezone., 你的程序里 new Date ()就是那个时区的了.
    KentY
        9
    KentY  
       2015-08-19 22:45:33 +08:00   1
    @nopy 系统时间+8 小时, 是万不能采用的办法.
    blackboom
        10
    blackboom  
    OP
       2015-08-19 22:55:30 +08:00
    @unique
    @tianice
    @phx13ye
    @beyondsoft
    @KentY
    感谢各位 在 tomcat 中添加了 JAVA_OPTS="-Duser.timezOne=GMT+08" 时间恢复正常
    Tomcat 程序时间是正常了,但不是根本的解决办法,其他 JAVA 程序依旧时间不正常
    kn007
        11
    kn007  
       2015-08-19 22:55:38 +08:00
    LS 正解
    phx13ye
        12
    phx13ye  
       2015-08-19 23:14:24 +08:00   1
    blackboom
        13
    blackboom  
    OP
       2015-08-19 23:22:43 +08:00
    @phx13ye 不是 而是 linux

    java 程序获取时间是 “ UTC 协调世界时”
    系统时间是 “ CST 格林尼治标准时间 ”
    anexplore
        14
    anexplore  
       2015-08-19 23:36:42 +08:00   1
    看一下 java.util.TimeZone 的获取 timezone 的源码吧,
    private static synchronized TimeZone setDefaultZone () {
    TimeZone tz;
    // get the time zone ID from the system properties
    String zOneID= AccessController.doPrivileged (
    new GetPropertyAction ("user.timezone"));

    // if the time zone ID is not set (yet ), perform the
    // platform to Java time zone ID mapping.
    if (zOneID== null || zoneID.isEmpty ()) {
    String country = AccessController.doPrivileged (
    new GetPropertyAction ("user.country"));
    String javaHome = AccessController.doPrivileged (
    new GetPropertyAction ("java.home"));
    try {
    zOneID= getSystemTimeZoneID (javaHome, country );
    if (zOneID== null ) {
    zOneID= GMT_ID;
    }
    } catch (NullPointerException e ) {
    zOneID= GMT_ID;
    }
    }}
    。。。。。。。。。。
    }
    aaronmix
        15
    aaronmix  
       2015-08-20 00:36:30 +08:00   1
    JDK 版本多少?
    codeyung
        16
    codeyung  
       2015-08-20 13:30:45 +08:00   1
    还是 linux 系统时间要改 UTC 试试 然后 tomcat 启动里添加既可
    sovalvo
        17
    sovalvo  
       2015-08-20 17:37:43 +08:00   1
    我是来看一楼的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1570 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:22 PVG 00:22 LAX 08:22 JFK 11:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86