解决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
TimeZonefor the given ID. -
-
- Parameters:
ID- the ID for aTimeZone, 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个小时 专题的更多相关文章
- Java获取系统时间少了八个小时
Java获取系统时间少了八个小时 今天忽然遇到需要获取当前时间的问题,我向来谨慎,先测试获取到的系统时间是否正确,结果竟然发现少了八个小时,晕死了,记得之前在页面用javascript获取过当前时间, ...
- 解决weblogic与系统时间相差8小时的问题
解决weblogic与系统时间相差8小时的问题 在一般情况下weblogic与系统时间是很少会出现时间差的问题,但有可能在某一特定的情况下就会出现,如使用weblogic8版本时可能会出现时差问题: ...
- java获取系统指定时间年月日
java获取系统指定时间年月日 private String setDateTime(String falg) { Calendar c = Calendar.getInstance(); c.set ...
- java 获取系统当前时间并格式化
java 获取系统当前时间并格式化 CreateTime--2018年5月9日11:41:00 Author:Marydon 实现方式有三种 updateTime--2018年7月23日09点32 ...
- java 获取系统变量(环境变量和设置变量)
前言 环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说, 环境变量的处理可能会 ...
- java 获取系统变量(环境变量和环境变量)
前言 环境变量这个概念不陌生, 就是操作系统的环境变量. 系统变量就是java本身维护的变量. 通过 System.getProperty 的方式获取. 对于不同的操作系统来说. 环境变量的处理可能会 ...
- Java获取系统日期时间
方法一:利用Calendar类来获取当前日期和时间,代码如下: /** * 获取系统时间 * @return */ public String getDate(){ Calendar calendar ...
- Java获取系统默认浏览器打开链接
package com.ylx.test; public class DesktopBrowers { public static void main(String[] args) { // 判断当前 ...
- Java获取系统时间
Java可以通过SimpleDateFormat格式化类对Date进行格式话获取时间. import java.util.*; import java.text.*; public class Tes ...
随机推荐
- .Net MVC5路由机制与扩展
新建一个MVC项目启动后,首先访问的地址是http://localhost:xxx/Home/Index,这时候我们也明白因为在程序中有个叫做Home的控制器,并且在这个控制器下面有个叫做Index的 ...
- 仿微信聊天面板制作 javascript
先上图吧 , 点击头像更换说话对象,简单说下实现原理,html中创建一个ul用于存放所有说话的内容,对话内容是有javascript 动态生成, 主要难点:先布局好css,当时奥巴马发送时候,让这个l ...
- [JS&Jquery]实现页面表格中相同内容的行或列合并
详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak<script type=&qu ...
- 用MVC5+EF6+WebApi 做一个小功能(一)开场挖坑,在线答题系统
从哪开始说呢,这几年微软的技术一直在变,像是牟足了劲要累死所有的NET程序员,从WebForm到MVC到现在MPA.SPA .Razor单页,从net2.0一直走到现在.net4.6.2,后面还有一个 ...
- iOS 优秀开源项目
1. 界面 iCarousel: 用来做图片旋转显示效果(相册). MZTimerLabel:用来制作一个计时并显示时间的 label. MSDynamicsDrawerViewController, ...
- Linux基础实验(二)
一)基础实验: 1. 新建文件a.txt,并用权限模式.权限值两种方式修改权限为rwxrwx--x 新建文件:touch a.txt 权限模式:chmod ug=rwx o=x a.tx ...
- 【BZOJ1956】[Ahoi2005]SHUFFLE 洗牌
题目描述: 这道题,我们首先一眼瞪出来一个规律:对于一个位置为i的牌,在1次洗牌后,他的位置处于(i*2)%(n+1) 的位置 那么,显然的,对于M次洗牌 我们只需要求出2的m次方,这个我们采用快速幂 ...
- nginx配置文件中,location字段里面的root字段和别名alias
1. location里面的root例子 server{ listen ; server_name www.wzw.com; location /www { root /data/; //设置虚拟主机 ...
- winserver2008安装tomcat+mysql+httpd+redis环境
1. 装tomcat和jdk http://www.cnblogs.com/SHI520/p/4546849.html 2. 安装mysql5.7 https://www.jb51.net/a ...
- multiprocessor(中)
一.进程同步(锁) 通过之前的学习,我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发处理,他们之间的运行没有顺序,一旦开启也不受我们控制.尽管并发编程让我们能更加充分的利用IO资源,但 ...