查詢目前使用的時區:
TimeZone.getDefault().getID(); // Asia/Taipei TimeZone.getDefault().getDisplayName(); // friendly name ex: 台灣標準時間
設定時區:
TimeZone tx = TimeZone.getTimeZone("Indian/Cocos"); // "Indian/Cocos" 就是 TimeZone ID TimeZone.setDefault(tx);
列出可用時區:
String [] ids = TimeZone.getAvailableIDs(); for (String timezone : ids) { System.out.println(timezone + " " + TimeZone.getTimeZone(timezone).getDisplayName()); }
如果要取得目前日期時間可以透過 Calendar 物件取的相關訊息:
Calendar now = Calendar.getInstance(); int hour = now.get(Calendar.HOUR_OF_DAY); int minute = now.get(Calendar.MINUTE); int second = now.get(Calendar.SECOND); int month = now.get(Calendar.MONTH); int day = now.get(Calendar.DAY_OF_MONTH); int year = now.get(Calendar.YEAR); System.out.printf("現在是 %d/%d/%d %02d:%02d:%02d", year, (month+1), day, hour, minute, second);
要注意的是,Calendar 物件類別中的 MONTH 是用 0 到 11 來到表 1 月到 12 月,所以取得的數值要加 1 才會顯示正確。
當你發現上面顯示的日期時間與你的電腦不符時,有可能是 Java 解譯器用錯時區設定;當 Java 解譯器不曉得目前的預設時區的話,會直接使用格林威治時間。
[相關資料]
[Java] 日期方法 (Date method)
沒有留言:
張貼留言