實現時間的代碼如下:
private int minute = 0, hour = 0,second = 0;
private String strminute, strhour, strsecond;

/** *//**
* 畫時間-
* @param focusTemp
* @param gr
*/

public void drawTime(Graphics gr)
{
Calendar cal = Calendar.getInstance();

second =cal.get(Calendar.SECOND);
minute = cal.get(Calendar.MINUTE);
hour = cal.get(Calendar.HOUR_OF_DAY);
strsecond = Integer.toString(second);
strminute = Integer.toString(minute);
strhour = Integer.toString(hour);
if(second<10)
strsecond="0"+strsecond;
if(minute<10)
strminute="0"+strminute;
if(hour<10)
strhour="0"+strhour;

Font aa=gr.getFont();
gr.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
gr.setColor(0xFFD700);
gr.drawString(strhour + ":" + strminute , SCREEN_WIDTH-50, 6, 0);
gr.setFont(aa);
}
一般情況下,使用這些就足夠了。
如果更深一步探索,需要對時區控制的話,見下面:
1.這樣獲取的時間,無論電腦上調試時還是在真機上,顯示的都是一樣的
TimeZone china=TimeZone.getTimeZone("GMT+08:00");
Calendar cal1 = Calendar.getInstance(china);
int second =cal1.get(Calendar.SECOND);
int minute = cal1.get(Calendar.MINUTE);
int hour = cal1.get(Calendar.HOUR_OF_DAY);
String strsecond = Integer.toString(second);
String strminute = Integer.toString(minute);
String strhour = Integer.toString(hour);
System.out.println("北京時間 "+strhour + ":" + strminute +":"+strsecond);//GMT+08:00
TimeZone就是對時區的控制,
在Eclipse開發時,如果不設置時區的話,用Calendar獲取的時間是默認的格林威治標準時間
在Eclipse開發時,如果設置時區的話, 用Calendar獲取的時間是設置的那個時區的時間
舉例如下:
A>. 社區的設置
//獲得實際手機使用區域的默認時區
TimeZone defaultZone = TimeZone.getDefault();
//獲得默認時區對象的ID標識
System.out.println(defaultZone.getID());//UTC
//取得中國的時區
TimeZone china=TimeZone.getTimeZone("GMT+08:00");
System.out.println(china.getID());//GMT+08:00
B >. 時區不同,時間的不同
TimeZone china=TimeZone.getTimeZone("GMT+08:00");
System.out.println(china.getID());//GMT+08:00
prompt3=china.getID();
Calendar cal1 = Calendar.getInstance(china);
int second =cal1.get(Calendar.SECOND);
int minute = cal1.get(Calendar.MINUTE);
int hour = cal1.get(Calendar.HOUR_OF_DAY);
String strsecond = Integer.toString(second);
String strminute = Integer.toString(minute);
String strhour = Integer.toString(hour);
System.out.println("東八時區ID"+prompt3);//GMT+08:00
System.out.println("北京時間 "+strhour + ":" + strminute +":"+strsecond);//
TimeZone defatime =TimeZone.getDefault();
System.out.println(defatime.getID());//GMT+08:00
prompt4=defatime.getID();
Calendar cal2 = Calendar.getInstance(defatime);
second =cal2.get(Calendar.SECOND);
minute = cal2.get(Calendar.MINUTE);
hour = cal2.get(Calendar.HOUR_OF_DAY);
strsecond = Integer.toString(second);
strminute = Integer.toString(minute);
strhour = Integer.toString(hour);
System.out.println("默認時區ID"+prompt4);//UTC
System.out.println("默認時間 "+strhour + ":" + strminute +":"+strsecond);//
這兩個時間,在手機上顯示的是一樣的,但是在Eclipse開發時,是相差8個小時的。
應用:
在電腦上的模擬器上,正因為時區id不同,可以作為簡單的反模擬器使用的一個方法,只要時區id不同,就不然程序啟動。
2.API中的使用方法:
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 的語法是:
CustomID:
GMT
Sign Hours :
Minutes
GMT
Sign Hours Minutes
GMT
Sign Hours
Sign: 下面之一
+ -
Hours:
Digit
Digit Digit
Minutes:
Digit Digit
Digit: 下面之一
0 1 2 3 4 5 6 7 8 9
Hours 必須在 0 至 23 之間,Minutes 必須在 00 至 59 之間。例如,"GMT+10" 和 "GMT+0010" 分別意味著比 GMT 提前 10 小時和 10 分鐘。
格式是與區域無關的,并且數字必須取自 Unicode 標準的 Basic Latin 塊。沒有夏令時轉換安排可以用自定義時區 ID 指定。如果指定的字符串與語法不匹配,就使用 "GMT"
。
當創建一個 TimeZone
時,指定的自定義時區 ID 采用下面的語法進行標準化:
NormalizedCustomID:
GMT
Sign TwoDigitHours :
Minutes
Sign: 下面之一
+ -
TwoDigitHours:
Digit Digit
Minutes:
Digit Digit
Digit: 下面之一
0 1 2 3 4 5 6 7 8 9
例如,TimeZone.getTimeZone("GMT-8").getID() 返回 "GMT-08:00"。
GMT簡介:
GMT(Greenwich Mean Time)是格林尼治平時:
由于地球軌道并非圓形,其運行速度又隨著地球與太陽的距離改變而出現變化,因此視太陽時欠缺均勻性。視太陽日的長度同時亦受到地球自轉軸相對軌道面的傾斜度所影響。為著要糾正上述的不均勻性,天文學家計算地球非圓形軌跡與極軸傾斜對視太陽時的效應。平太陽時就是指經修訂后的視太陽時。在格林尼治子午線上的平太陽時稱為世界時(UT0),又叫格林尼治平時(GMT)。
格林尼治標準時間
格林尼治標準時間(GMT,舊譯“格林威治平均時間”或“格林威治標準時間”)是指位于倫敦郊區的皇家格林尼治天文臺的標準時間,因為本初子午線被定義在通過那里的經線。
理論上來說,格林尼治標準時間的正午是指當太陽橫穿格林尼治子午線時(也就是在格林尼治上空最高點時)的時間。由于地球在它的橢圓軌道里的運動速度不均勻,這個時刻可能和實際的太陽時相差16分鐘。
地球每天的自轉是有些不規則的,而且正在緩慢減速。所以,格林尼治時間已經不再被作為標準時間使用。現在的標準時間——協調世界時(UTC)——由原子鐘提供。
自1924年2月5日開始,格林尼治天文臺每隔一小時會向全世界發放調時信息。
中文維基百科的編輯歷史記錄時間,采用的就是格林尼治標準時間。
[End] 騎豬闖天下