============================
思想来源:论坛
思想来源作者:java2000_net
网址:http://topic.csdn.net/u/20081103/06/af2335b0-5bd3-442e-99e8-2f59621d1bc9.html?seed=1986063255
-------------------------------------------------
源代码:
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- public class Test {
- public static void main(String args[]) throws Exception {
- String[] dateString = { "1900-01-01 07:59:59", "1900-01-01 08:00:00",
- "1900-01-01 08:05:51", "1900-01-01 08:05:52" };
- DateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- for (String date : dateString) {
- System.out.println(date + "=" + dateTimeFormat.parse(date));
- }
- }
- }
运行结果:
- 1900-01-01 07:59:59=Mon Jan 01 07:59:59 CST 1900
- 1900-01-01 08:00:00=Mon Jan 01 08:05:52 CST 1900
- 1900-01-01 08:05:51=Mon Jan 01 08:11:43 CST 1900
- 1900-01-01 08:05:52=Mon Jan 01 08:05:52 CST 1900
运行结果的第二行和第三行的时间快了5分52秒?
解决方法:
跟时区的偏移量有关系,看打印的结果是CST时区,我们设置成中国时区,这个误差就不存在。源代码如下:
- package com.cvicse.justindo.date;
- import java.text.DateFormat;
- import java.text.SimpleDateFormat;
- public class Test {
- public static void main(String args[]) throws Exception {
- String[] dateString = { "1900-01-01 07:59:59", "1900-01-01 08:00:00",
- "1900-01-01 08:05:51", "1900-01-01 08:05:52" };
- SimpleDateFormat dateTimeFormat = new SimpleDateFormat(
- "yyyy-MM-dd HH:mm:ss");
- TimeZone tz = TimeZone.getTimeZone("GMT+08:00");//获取中国北京时区
- TimeZone.setDefault(tz);//设置中国北京时区为默认时区
- // dateTimeFormat.setLenient(false);
- for (String date : dateString) {
- System.out.println(date + "=" + dateTimeFormat.parse(date));
- }
- }
- }
打印结果:
- 1900-01-01 07:59:59=Mon Jan 01 07:59:59 GMT+08:00 1900
1900-01-01 08:00:00=Mon Jan 01 08:00:00 GMT+08:00 1900
1900-01-01 08:05:51=Mon Jan 01 08:05:51 GMT+08:00 1900
1900-01-01 08:05:52=Mon Jan 01 08:05:52 GMT+08:00 1900
或者修改系统中的时区也可以:
修改方式:
点击右下角服务的那里的时间,选择时区tab,选择时区为美国的时区
附时区简写对照表:
标准时间代码 | 与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 中央标准时间(南澳大利亚/新南威尔斯)