使用DateFormate后的时间误差

============================

思想来源:论坛

思想来源作者:java2000_net

网址:http://topic.csdn.net/u/20081103/06/af2335b0-5bd3-442e-99e8-2f59621d1bc9.html?seed=1986063255

-------------------------------------------------

 

源代码:

  1. import java.text.DateFormat;
  2. import java.text.SimpleDateFormat;
  3. public class Test {
  4.   public static void main(String args[]) throws Exception {
  5.     String[] dateString = { "1900-01-01 07:59:59""1900-01-01 08:00:00",
  6.         "1900-01-01 08:05:51""1900-01-01 08:05:52" };
  7.     DateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  8.     for (String date : dateString) {
  9.       System.out.println(date + "=" + dateTimeFormat.parse(date));
  10.     }
  11.   }
  12. }

运行结果:

  1. 1900-01-01 07:59:59=Mon Jan 01 07:59:59 CST 1900 
  2. 1900-01-01 08:00:00=Mon Jan 01 08:05:52 CST 1900 
  3. 1900-01-01 08:05:51=Mon Jan 01 08:11:43 CST 1900 
  4. 1900-01-01 08:05:52=Mon Jan 01 08:05:52 CST 1900 

运行结果的第二行和第三行的时间快了5分52秒?

 

 

解决方法:

跟时区的偏移量有关系,看打印的结果是CST时区,我们设置成中国时区,这个误差就不存在。源代码如下:

 

  1. package com.cvicse.justindo.date;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. public class Test {
  5.     public static void main(String args[]) throws Exception {
  6.         String[] dateString = { "1900-01-01 07:59:59""1900-01-01 08:00:00",
  7.                 "1900-01-01 08:05:51""1900-01-01 08:05:52" };
  8.         SimpleDateFormat dateTimeFormat = new SimpleDateFormat(
  9.                 "yyyy-MM-dd HH:mm:ss");
  10.         
  11.         TimeZone tz = TimeZone.getTimeZone("GMT+08:00");//获取中国北京时区
  12.         TimeZone.setDefault(tz);//设置中国北京时区为默认时区
  13.         //      dateTimeFormat.setLenient(false);
  14.         for (String date : dateString) {
  15.             System.out.println(date + "=" + dateTimeFormat.parse(date));
  16.         }
  17.     }
  18. }

打印结果:

  1. 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可使用的参数

  1. America/Belize                      CST          中央标准时间
  2. America/Cancun                      CST          中央标准时间
  3. America/Chicago                     CST          中央标准时间
  4. America/Costa_Rica                  CST          中央标准时间
  5. America/El_Salvador                 CST          中央标准时间
  6. America/Guatemala                   CST          中央标准时间
  7. America/Indiana/Knox                CST          中央标准时间
  8. America/Indiana/Tell_City           CST          中央标准时间
  9. America/Knox_IN                     CST          中央标准时间
  10. America/Managua                     CST          中央标准时间
  11. America/Menominee                   CST          中央标准时间
  12. America/Merida                      CST          中央标准时间
  13. America/Mexico_City                 CST          中央标准时间
  14. America/Monterrey                   CST          中央标准时间
  15. America/North_Dakota/Center         CST          中央标准时间
  16. America/North_Dakota/New_Salem      CST          中央标准时间
  17. America/Rainy_River                 CST          中央标准时间
  18. America/Rankin_Inlet                CST          中央标准时间
  19. America/Regina                      CST          中央标准时间
  20. America/Swift_Current               CST          中央标准时间
  21. America/Tegucigalpa                 CST          中央标准时间
  22. America/Winnipeg                    CST          中央标准时间
  23. CST                                 CST          中央标准时间
  24. CST6CDT                             CST          中央标准时间
  25. Canada/Central                      CST          中央标准时间
  26. Canada/East-Saskatchewan            CST          中央标准时间
  27. Canada/Saskatchewan                 CST          中央标准时间
  28. Mexico/General                      CST          中央标准时间
  29. SystemV/CST6                        CST          中央标准时间
  30. SystemV/CST6CDT                     CST          中央标准时间
  31. US/Central                          CST          中央标准时间
  32. US/Indiana-Starke                   CST          中央标准时间
  33. America/Havana                      CST          Cuba Standard Time
  34. Cuba                                CST          Cuba Standard Time
  35. Asia/Chongqing                      CST          中国标准时间
  36. Asia/Chungking                      CST          中国标准时间
  37. Asia/Harbin                         CST          中国标准时间
  38. Asia/Kashgar                        CST          中国标准时间
  39. Asia/Macao                          CST          中国标准时间
  40. Asia/Macau                          CST          中国标准时间
  41. Asia/Shanghai                       CST          中国标准时间
  42. Asia/Taipei                         CST          中国标准时间
  43. Asia/Urumqi                         CST          中国标准时间
  44. CTT                                 CST          中国标准时间
  45. PRC                                 CST          中国标准时间
  46. ACT                                 CST          中央标准时间(北领地)
  47. Australia/Adelaide                  CST          中央标准时间(南澳大利亚)
  48. Australia/Broken_Hill               CST          中央标准时间(南澳大利亚/新南威尔斯)
  49. Australia/Darwin                    CST          中央标准时间(北领地)
  50. Australia/North                     CST          中央标准时间(北领地)
  51. Australia/South                     CST          中央标准时间(南澳大利亚)
  52. Australia/Yancowinna                CST          中央标准时间(南澳大利亚/新南威尔斯)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值