時間的處理

GMT,UTC,DST,CST時間表示的區別

全球24個時區的劃分


      相較於兩地時間表,可以顯示世界各時區時間和地名的世界時區表(World Time),就顯得精密與複雜多了,通常世界時區表的錶盤上會標示着全球24個時區的城市名稱,但究竟這24個時區是如何產生的?過去世界各地原本各自訂定當地時間,但隨着交通和電訊的發達,各地交流日益頻繁,不同的地方時間,造成許多困擾,於是在西元1884年的國際會議上制定了全球性的標準時,明定以英國倫敦格林威治這個地方爲零度經線的起點(亦稱爲本初子午線),並以地球由西向東每24小時自轉一週360°,訂定每隔經度15°,時差1小時。而每15°的經線則稱爲該時區的中央經線,將全球劃分爲24個時區,其中包含23個整時區及180°經線左右兩側的2個半時區。就全球的時間來看,東經的時間比西經要早,也就是如果格林威治時間是中午12時,則中央經線15°E的時區爲下午1時,中央經線30°E時區的時間爲下午2時;反之,中央經線15°W的時區時間爲上午11時,中央經線30°W時區的時間爲上午10時。以臺灣爲例,臺灣位於東經121°,換算後與格林威治就有8小時的時差。如果兩人同時從格林威治的0°各往東、西方前進,當他們在經線180°時,就會相差24小時,所以經線180°被定爲國際換日線,由西向東通過此線時日期要減去一日,反之,若由東向西則要增加一日。

格林威治標準時間GMT


      十七世紀,格林威治皇家天文臺爲了海上霸權的擴張計畫而進行天體觀測。1675年舊皇家觀測所(Old Royal Observatory) 正式成立,到了1884年決定以通過格林威治的子午線作爲劃分地球東西兩半球的經度零度。觀測所門口牆上有一個標誌24小時的時鐘,顯示當下的時間,對全球而言,這裏所設定的時間是世界時間參考點,全球都以格林威治的時間作爲標準來設定時間,這就是我們耳熟能詳的「格林威治標準時間」(Greenwich Mean Time,簡稱G.M.T.)的由來,標示在手錶上,則代表此表具有兩地時間功能,也就是同時可以顯示原居地和另一個國度的時間。


世界協調時間UTC
      多數的兩地時間表都以GMT來表示,但也有些兩地時間表上看不到GMT字樣,出現的反而是UTC這3個英文字母,究竟何謂UTC?事實上,UTC指的是Coordinated Universal Time- 世界協調時間(又稱世界標準時間、世界統一時間),是經過平均太陽時(以格林威治時間GMT爲準)、地軸運動修正後的新時標以及以「秒」爲單位的國際原子時所綜合精算而成的時間,計算過程相當嚴謹精密,因此若以「世界標準時間」的角度來說,UTC比GMT來得更加精準。其誤差值必須保持在0.9秒以內,若大於0.9秒則由位於巴黎的國際地球自轉事務中央局發佈閏秒,使UTC與地球自轉週期一致。所以基本上UTC的本質強調的是比GMT更爲精確的世界時間標準,不過對於現行錶款來說,GMT與UTC的功能與精確度是沒有差別的。


夏日節約時間DST


      所謂「夏日節約時間」Daylight Saving Time(簡稱D.S.T.),是指在夏天太陽升起的比較早時,將時鐘撥快一小時,以提早日光的使用,在英國則稱爲夏令時間(Summer Time)。這個構想於1784年由美國班傑明·富蘭克林提出來,1915年德國成爲第一個正式實施夏令日光節約時間的國家,以削減燈光照明和耗電開支。自此以後,全球以歐洲和北美爲主的約70個國家都引用這個做法。目前被劃分成兩個時區的印度也正在商討是否全國該統一實行夏令日光節約時間。歐洲手機上也有很多GSM系統的基地臺,除了會傳送當地時間外也包括夏令日光節約時間,做爲手機的時間標準,使用者可以自行決定要開啓或關閉。值得注意的是,某些國家有實施「夏日節約時間」的制度,出國時別忘了跟隨當地習慣在表上調整一下,這可是機械錶沒有的功能設計哦!

CST時間

CST卻同時可以代表如下 4 個不同的時區:

Central Standard Time (USA) UT-6:00

Central Standard Time (Australia) UT+9:30

China Standard Time UT+8:00

Cuba Standard Time UT-4:00

可見,CST可以同時表示美國,澳大利亞,中國,古巴四個國家的標準時間。


Date d=new Date();
System.out.println(d);
  

String aa="2015-04-20T20:00:00";
DateFormat format=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone("GMT"));
System.out.println(format.format(d));




SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
sdf.parse(aa);
System.out.println("================" );
System.out.println(aa );
System.out.println( sdf.parse(aa));

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH); 
  System.out.println(df.format(sdf.parse(aa))); 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章