[J2ME-原創] 時區TimeZone和時間
實現時間的代碼如下:































一般情況下,使用這些就足夠了。
如果更深一步探索,需要對時區控制的話,見下面:
1.這樣獲取的時間,無論電腦上調試時還是在真機上,顯示的都是一樣的











TimeZone就是對時區的控制,
在Eclipse開發時,如果不設置時區的話,用Calendar獲取的時間是默認的格林威治標準時間
在Eclipse開發時,如果設置時區的話, 用Calendar獲取的時間是設置的那個時區的時間
A>. 社區的設置








B >. 時區不同,時間的不同































應用:
在電腦上的模擬器上,正因為時區id不同,可以作為簡單的反模擬器使用的一個方法,只要時區id不同,就不然程序啟動。
2.API中的使用方法:
返回 TimeZone 的 java.util 中的方法 | |
---|---|
static TimeZone |
TimeZone.getDefault() 獲取此主機的默認 TimeZone 。 |
TimeZone |
Calendar.getTimeZone() 獲得時區。 |
TimeZone |
GregorianCalendar.getTimeZone() |
static TimeZone |
TimeZone.getTimeZone(String ID) 獲取給定 ID 的 TimeZone 。 |
參數類型為 TimeZone 的 java.util 中的方法 | |
---|---|
static Calendar |
Calendar.getInstance(TimeZone zone) 使用指定時區和默認語言環境獲得一個日歷。 |
static Calendar |
Calendar.getInstance(TimeZone zone, Locale aLocale) 使用指定時區和語言環境獲得一個日歷。 |
boolean |
TimeZone.hasSameRules(TimeZone other) 如果此區域和另一個區域具有相同的規則和偏移量,也就是說,如果此區域只可能在 ID 上與另一個區域不同,則返回 true。 |
boolean |
SimpleTimeZone.hasSameRules(TimeZone other) 如果此時區與另一時區具有相同的規則和偏移量,則返回 true 。 |
static void |
TimeZone.setDefault(TimeZone zone) 設置由 getDefault 方法返回的 TimeZone 。 |
void |
Calendar.setTimeZone(TimeZone value) 使用給定的時區值來設置時區。 |
void |
GregorianCalendar.setTimeZone(TimeZone zone) |
參數類型為 TimeZone 的 java.util 中的構造方法 | |
---|---|
Calendar(TimeZone zone, Locale aLocale) 構造一個帶有指定時區和語言環境的 Calendar。 |
|
GregorianCalendar(TimeZone zone) 在具有默認語言環境的給定時區內構造一個基于當前時間的 GregorianCalendar 。 |
|
GregorianCalendar(TimeZone zone, Locale aLocale) 在具有給定語言環境的給定時區內構造一個基于當前時間的 GregorianCalendar 。 |
3.TimeZone時區的擴展知識
java.util.TimeZone,
表示時區偏移量,也可以計算夏令時。
API簡述:
TimeZone
通常,使用 getDefault
獲取 TimeZone
,getDefault
基于程序運行所在的時區創建 TimeZone
。例如,對于在日本運行的程序,getDefault
基于日本標準時間創建 TimeZone
對象。
也可以用 getTimeZone
及時區 ID 獲取 TimeZone
。例如美國太平洋時區的時區 ID 是 "America/Los_Angeles"。因此,可以使用下面語句獲得美國太平洋時間 TimeZone
對象:
TimeZone tz = TimeZone.getTimeZone("America/Los_Angeles");
可以使用 getAvailableIDs
方法來對所有受支持的時區 ID 進行迭代。可以選擇受支持的 ID 來獲得 TimeZone
。如果想要的時區無法用受支持的 ID 之一表示,那么可以指定自定義時區 ID 來生成 TimeZone。自定義時區 ID 的語法是:
Hours 必須在 0 至 23 之間,Minutes 必須在 00 至 59 之間。例如,"GMT+10" 和 "GMT+0010" 分別意味著比 GMT 提前 10 小時和 10 分鐘。CustomID:GMT
Sign Hours:
MinutesGMT
Sign Hours MinutesGMT
Sign Hours Sign: 下面之一+ -
Hours: Digit Digit Digit Minutes: Digit Digit Digit: 下面之一0 1 2 3 4 5 6 7 8 9
格式是與區域無關的,并且數字必須取自 Unicode 標準的 Basic Latin 塊。沒有夏令時轉換安排可以用自定義時區 ID 指定。如果指定的字符串與語法不匹配,就使用 "GMT"
。
當創建一個 TimeZone
時,指定的自定義時區 ID 采用下面的語法進行標準化:
例如,TimeZone.getTimeZone("GMT-8").getID() 返回 "GMT-08:00"。NormalizedCustomID:GMT
Sign TwoDigitHours:
Minutes Sign: 下面之一+ -
TwoDigitHours: Digit Digit Minutes: Digit Digit Digit: 下面之一0 1 2 3 4 5 6 7 8 9
GMT簡介:
GMT(Greenwich Mean Time)是格林尼治平時:
由于地球軌道并非圓形,其運行速度又隨著地球與太陽的距離改變而出現變化,因此視太陽時欠缺均勻性。視太陽日的長度同時亦受到地球自轉軸相對軌道面的傾斜度所影響。為著要糾正上述的不均勻性,天文學家計算地球非圓形軌跡與極軸傾斜對視太陽時的效應。平太陽時就是指經修訂后的視太陽時。在格林尼治子午線上的平太陽時稱為世界時(UT0),又叫格林尼治平時(GMT)。
格林尼治標準時間
格林尼治標準時間(GMT,舊譯“格林威治平均時間”或“格林威治標準時間”)是指位于倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經線。
理論上來說,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由于地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能和實際的太陽時相差16分鐘。
地球每天的自轉是有些不規則的,而且正在緩慢減速。所以,格林尼治時間已經不再被作為標準時間使用。現在的標準時間——協調世界時(UTC)——由原子鐘提供。
自1924年2月5日開始,格林尼治天文臺每隔一小時會向全世界發放調時信息。
中文維基百科的編輯歷史記錄時間,采用的就是格林尼治標準時間。
GMT(Greenwich Mean Time)是格林尼治平時:
由于地球軌道并非圓形,其運行速度又隨著地球與太陽的距離改變而出現變化,因此視太陽時欠缺均勻性。視太陽日的長度同時亦受到地球自轉軸相對軌道面的傾斜度所影響。為著要糾正上述的不均勻性,天文學家計算地球非圓形軌跡與極軸傾斜對視太陽時的效應。平太陽時就是指經修訂后的視太陽時。在格林尼治子午線上的平太陽時稱為世界時(UT0),又叫格林尼治平時(GMT)。
格林尼治標準時間
格林尼治標準時間(GMT,舊譯“格林威治平均時間”或“格林威治標準時間”)是指位于倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經線。
理論上來說,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由于地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能和實際的太陽時相差16分鐘。
地球每天的自轉是有些不規則的,而且正在緩慢減速。所以,格林尼治時間已經不再被作為標準時間使用。現在的標準時間——協調世界時(UTC)——由原子鐘提供。
自1924年2月5日開始,格林尼治天文臺每隔一小時會向全世界發放調時信息。
中文維基百科的編輯歷史記錄時間,采用的就是格林尼治標準時間。
[End] 騎豬闖天下