Java中TimeZone类的常用方法
一、TimeZone類的定義
TimeZone類是一個抽象類,主要包含了對于時區的各種操作,可以進行計算時間偏移量或夏令時等操作
二、TimeZone類的常用方法
1、getAvailableIDs()
getAvailableIDs()
獲取Java支持的所有時區ID
System.out.println(Arrays.toString(TimeZone.getAvailableIDs()));
getAvailableIDs(int rawOffset)
根據 時間偏移量 來獲取時區ID
System.out.println(Arrays.toString(TimeZone.getAvailableIDs(28800000)));
2、getDefault()
獲取當前系統的默認時區,中國默認為東八區
// sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
System.out.println(TimeZone.getDefault());
3、setDefault(TimeZone zone)
設置當前系統的默認時區
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
// sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
System.out.println(TimeZone.getDefault());
4、getTimeZone()
getTimeZone(String ID)
根據 時區ID 來獲取其對應的時區
// sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
System.out.println(TimeZone.getTimeZone("GMT+08:00"));
getTimeZone(ZoneId zoneId)
根據 ZoneId 對象來獲取其對應的時區
// sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
System.out.println(TimeZone.getTimeZone(ZoneId.of("GMT+08:00")));
5、getDisplayName()
getDisplayName()
獲取該TimeZone對象的時區名稱
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getDisplayName()); // 中國標準時間
getDisplayName(Locale locale)
獲取該TimeZone對象的時區名稱
locale:提供時區名稱的區域設置
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getDisplayName()); // 中國標準時間
System.out.println(timeZone.getDisplayName(Locale.ENGLISH)); // China Standard Time
getDisplayName(boolean daylight, int style)
獲取該TimeZone對象的時區名稱
daylight:若為true,則指定夏令時名稱;若為false,則指定標準時間名稱
style:
TimeZone.LONG:顯示全稱
TimeZone.SHORT:顯示簡稱
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getDisplayName()); // 中國標準時間
System.out.println(timeZone.getDisplayName(false, TimeZone.LONG)); // 中國標準時間
System.out.println(timeZone.getDisplayName(false, TimeZone.SHORT)); // CST
getDisplayName(boolean daylight, int style, Locale locale)
獲取該TimeZone對象的時區名稱
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getDisplayName()); // 中國標準時間
System.out.println(timeZone.getDisplayName(false, TimeZone.LONG, Locale.ENGLISH)); // China Standard Time
6、setID(String ID) 和getID()
getID()
獲取該TimeZone對象的時區ID
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getID()); // Asia/Shanghai
setID(String ID)
設置該TimeZone對象的時區ID
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
timeZone.setID("Asia/Chongqing");
System.out.println(timeZone.getID()); // Asia/Chongqing
7、getOffset(long date)
獲取該時間所在時區的時間偏移量
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getOffset(System.currentTimeMillis())); // 28800000
8、getDSTSavings()
在夏令時規則生效時,返回相對于標準時間提前的毫秒數,如果此時區不實施夏令時,則為 0
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
// 國內沒有夏令時,故為0
System.out.println(timeZone.getDSTSavings()); // 0
9、getRawOffset()
獲取時間原始偏移量,該值不受夏令時的影響,故稱為時間原始偏移量
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getRawOffset()); // 28800000
10、setRawOffset(int offsetMillis)
設置時間原始偏移量
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
timeZone.setRawOffset(25200000);
System.out.println(timeZone.getRawOffset()); // 25200000
11、toZoneId()
將TimeZone對象轉換為ZoneId對象
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
ZoneId zoneId = timeZone.toZoneId();
System.out.println(zoneId); // Asia/Shanghai
12、useDaylightTime()
查詢此時區是否使用夏令時
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.useDaylightTime()); // false
13、inDaylightTime(Date date)
查詢給定的日期是否在此時區的夏令時中
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.inDaylightTime(new Date())); // false
14、hasSameRules(TimeZone other)
如果兩時區僅ID不同,且具有相同的規則和時間偏移量,則返回true
如果另一個時區為空,則返回false
TimeZone timeZone1 = TimeZone.getTimeZone("Asia/Shanghai");
TimeZone timeZone2 = TimeZone.getTimeZone("Asia/Chongqing");
System.out.println(timeZone1.hasSameRules(timeZone2)); // true
原文:https://blog.csdn.net/goodbye_youth/article/details/81807273
總結
以上是生活随笔為你收集整理的Java中TimeZone类的常用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows7启用超级管理员admin
- 下一篇: 日语网名男77个