在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 中央标准时间(南澳大利亚/新南威尔斯)


解决java获取系统时间差8个小时 专题的更多相关文章

  1. Java获取系统时间少了八个小时

    Java获取系统时间少了八个小时 今天忽然遇到需要获取当前时间的问题,我向来谨慎,先测试获取到的系统时间是否正确,结果竟然发现少了八个小时,晕死了,记得之前在页面用javascript获取过当前时间, ...

  2. 解决weblogic与系统时间相差8小时的问题

    解决weblogic与系统时间相差8小时的问题 在一般情况下weblogic与系统时间是很少会出现时间差的问题,但有可能在某一特定的情况下就会出现,如使用weblogic8版本时可能会出现时差问题: ...

  3. java获取系统指定时间年月日

    java获取系统指定时间年月日 private String setDateTime(String falg) { Calendar c = Calendar.getInstance(); c.set ...

  4. java 获取系统当前时间并格式化

      java 获取系统当前时间并格式化 CreateTime--2018年5月9日11:41:00 Author:Marydon 实现方式有三种 updateTime--2018年7月23日09点32 ...

  5. java 获取系统变量(环境变量和设置变量)

    前言 环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说, 环境变量的处理可能会 ...

  6. java 获取系统变量(环境变量和环境变量)

    前言 环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说. 环境变量的处理可能会 ...

  7. Java获取系统日期时间

    方法一:利用Calendar类来获取当前日期和时间,代码如下: /** * 获取系统时间 * @return */ public String getDate(){ Calendar calendar ...

  8. Java获取系统默认浏览器打开链接

    package com.ylx.test; public class DesktopBrowers { public static void main(String[] args) { // 判断当前 ...

  9. Java获取系统时间

    Java可以通过SimpleDateFormat格式化类对Date进行格式话获取时间. import java.util.*; import java.text.*; public class Tes ...

随机推荐

  1. ce+od无法同时附加进程的问题

    CE+OD无法附加游戏进程的破解方法 来吧 别在为这烦恼了 其实看过 windows 核心编程那本书的人都知道 计算机编程领域 那些所谓的游戏保护 真的只是为难菜鸟而已,对于大鸟基本不起作用. 游戏无 ...

  2. ASP.NET RouteModule相关的一些东西

    Asp.NET中的路由配置,首先要提到的几个相关类型,Route ,RouteBase,RouteData,RouteTable,RouteCollection 这几个.下面我一次回忆一下,有需要的朋 ...

  3. JS——EasyuiCombobox三级联动

    有许多刚接触Easyui中Combobox控件的朋友可能都会遇到的问题:如何将Combobox做成三级联动? 现分享一个三级联动的案例给大家参考参考,经测试能通过.注意Combobox绑定的数据是Js ...

  4. Kylin性能调优记——业务技术两手抓

    本文由  网易云发布. 作者:冯宇 本篇文章仅限内部分享,如需转载,请联系网易获取授权. 背景 最近开始使用了新版本的Kylin,在此之前对于新版本的了解只是代码实现和一些简单的新功能测试,但是并没有 ...

  5. Sublime写作

    下载 Sublime Text 快捷键(MAC环境) sublime text 批量删除空白行 Sublime text3!行首,行尾,批量编辑!

  6. 2018-2019-2 网络对抗技术 20165219 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165219 Exp3 免杀原理与实践 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用sh ...

  7. 【Oracle 12c】CUUG OCP认证071考试原题解析(29)

    29.choose the best answer Evaluate the following query: SQL> SELECT promo_name || q'{'s start dat ...

  8. css3半圆

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. “全栈2019”Java多线程第五章:线程睡眠sleep()方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  10. Java中Io类-File类的构造方法

    package com.hxzy.IOSer;import java.io.*;public class Demo02 { public static void main(String[] args) ...