java settimezone_Java时间处理2----时区TimeZone类方法探究(Java8以前)
一、TimeZone 类的定义
TimeZone 类位于 java.util 包中,是一个抽象类,主要包含了对于时区的各种操作,可以进行计算时间偏移量或夏令时等操作
二、TimeZone 类常用方法
getAvailableIDs()
获取Java支持的所有时区 ID
1
2
3System.out.println(Arrays.toString(TimeZone.getAvailableIDs()));
// Asia/Shanghai, Asia/Chongqing, Asia/Hong_Kong, Asia/Macao, ...
getAvailableIDs(int rawOffset)
根据 时间偏移量 来获取时区 ID
1
2
3
4
5
6
7
8// 东八区时间,与标准时间相差8小时
System.out.println(Arrays.toString(TimeZone.getAvailableIDs(8*60*60*1000)));
// [Asia/Brunei, Asia/Choibalsan, Asia/Chongqing, Asia/Chungking, Asia/Harbin,
// Asia/Hong_Kong, Asia/Irkutsk, Asia/Kuala_Lumpur, Asia/Kuching, Asia/Macao,
// Asia/Macau, Asia/Makassar, Asia/Manila, Asia/Shanghai, Asia/Singapore,
// Asia/Taipei, Asia/Ujung_Pandang, Asia/Ulaanbaatar, Asia/Ulan_Bator,
// Australia/Perth, Australia/West, CTT, Etc/GMT-8, Hongkong, PRC, Singapore]
getDefault()
获取当前系统的默认时区,中国默认为东八区
1
2
3
4System.out.println(TimeZone.getDefault());
// sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
setDefault(TimeZone zone)
设置当前系统的默认时区
1
2
3
4
5TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
System.out.println(TimeZone.getDefault());
// sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=19,lastRule=null]
getTimeZone(String ID)
根据时区 ID 来获取其对应的时区
1
2
3
4System.out.println(TimeZone.getTimeZone("GMT+08:00"));
// sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
getTimeZone(ZoneId zoneId)
根据 ZoneId 对象来获取其对应的时区
1
2
3
4System.out.println(TimeZone.getTimeZone(ZoneId.of("GMT+08:00")));
// sun.util.calendar.ZoneInfo[id="GMT+08:00",offset=28800000,
// dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
getDisplayName()
获取该 TimeZone 对象的时区名称
1
2TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getDisplayName()); // 中国标准时间
getDisplayName(Locale locale)
获取该 TimeZone 对象的时区名称,并根据 Locale 对象进行国际化
1
2
3TimeZone 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:显示简称
1
2
3
4TimeZone 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 (China Standard Time)
getDisplayName(boolean daylight, int style, Locale locale)
获取该 TimeZone 对象的时区名称,并根据 Locale 对象进行国际化
daylight
true:指定夏令时名称
false:指定标准时间名称
style
TimeZone.LONG:显示全称
TimeZone.SHORT:显示简称
1
2
3TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getDisplayName()); // 中国标准时间
System.out.println(timeZone.getDisplayName(false, TimeZone.LONG, Locale.ENGLISH)); // China Standard Time
getID()
获取该 TimeZone 对象的时区 ID
1
2TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getID()); // Asia/Shanghai
setID(String ID)
设置该 TimeZone 对象的时区 ID
1
2
3TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
timeZone.setID("Asia/Chongqing");
System.out.println(timeZone.getID()); // Asia/Chongqing
getOffset(long date)
获取该时间所在时区的时间偏移量
1
2TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getOffset(System.currentTimeMillis())); // 28800000
getDSTSavings()
在夏令时规则生效时,返回相对于标准时间提前的毫秒数
如果此时区不实施夏令时,则为 0
1
2
3TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
// 中国没有夏令时,故为0
System.out.println(timeZone.getDSTSavings()); // 0
getRawOffset()
获取时间原始偏移量,该值不受夏令时的影响,故称为时间原始偏移量
1
2TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getRawOffset()); // 28800000
setRawOffset(int offsetMillis)
设置时间原始偏移量
1
2
3TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
timeZone.setRawOffset(25200000);
System.out.println(timeZone.getRawOffset()); // 25200000
toZoneId()
将 TimeZone 对象转换为 ZoneId 对象
1
2
3TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
ZoneId zoneId = timeZone.toZoneId();
System.out.println(zoneId); // Asia/Shanghai
useDaylightTime()
查询此时区是否使用夏令时
1
2TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.useDaylightTime()); // false
inDaylightTime(Date date)
查询给定的日期是否在此时区的夏令时中
1
2TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.inDaylightTime(new Date())); // false
hasSameRules(TimeZone other)
如果两时区仅时区 ID 不同,但具有相同的规则和时间偏移量,则返回 true
如果另一个时区为空,则返回 false
1
2
3TimeZone timeZone1 = TimeZone.getTimeZone("Asia/Shanghai");
TimeZone timeZone2 = TimeZone.getTimeZone("Asia/Chongqing");
System.out.println(timeZone1.hasSameRules(timeZone2)); // true
java settimezone_Java时间处理2----时区TimeZone类方法探究(Java8以前)相关推荐
- java不同时区时间转换,Java不同时区(timezone)之间时间转换
最近出现一个问题是这样的 我们的系统在国外打印的日志时间由于时差关系和国内不一致 看起来不方便 希望国外的日志和国内保持一致 即 需要对不同时区的时间做转换调整 统一为国内时间. 一.关于时区的一些概 ...
- java 不同时区时间转换_Java对世界不同时区timezone之间时间转换的处理方法
最近出现一个问题是这样的:我们的系统在国外打印的日志时间由于时差关系和国内不一致,看起来不方便,希望国外的日志和国内保持一致,即:需要对不同时区的时间做转换调整,统一为国内时间. 一.关于时区的一些概 ...
- java 时间纪元与时区介绍
时间纪元 所谓的"时间纪元"就是1970年1月1日0时0分0秒,指的是开始的时间.比如Java类代码: Date date = new Date(0); System.out.pr ...
- pandas使用to_datetime函数将时间字符串转化为时间对象、使用dt.tz_localize为转化后的时间对象添加时区信息(timezone)
pandas使用to_datetime函数将时间字符串转化为时间对象.使用dt.tz_localize为转化后的时间对象添加时区信息(timezone) 目录 pandas使用to_datetime函 ...
- Java 8时间和日期API 20例
本文由 ImportNew - Sandy 翻译自 javarevisited.欢迎加入 翻译小组.转载请见文末要求. 伴随lambda表达式.streams以及一系列小优化,Java 8 推出 ...
- Java 8 时间日期库的20个使用演示样例
除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务演示样例来学习怎样使用Java 8的这套API.Java对日 ...
- java zoneid 中国_关于时区:Java 8 Time API – ZonedDateTime – 在解析时指定默认的ZoneId...
我正在尝试编写一个泛型方法来返回ZonedDateTime给定日期为String及其格式. 如果String未在日期String中指定,我们如何使ZonedDateTime使用默认ZoneId? 它可 ...
- 一文告诉你Java日期时间API到底有多烂
前言 你好,我是A哥(YourBatman). 好看的代码,千篇一律!难看的代码,卧槽卧槽~其实没有什么代码是"史上最烂"的,要有也只有"史上更烂". 日期是商 ...
- java日期时间详解
一.简介 java中的日期处理一直是个问题,没有很好的方式去处理,所以才有第三方框架的位置比如joda. 文章主要对java日期处理的详解,用1.8可以不用joda. 1. 相关概念 首先我们对一些基 ...
最新文章
- 1042 字符统计(PAT乙级、C++)(超详细)
- 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)
- 鸿蒙系统的适配国产手机,真正的好消息!其它国产机,也在适配华为鸿蒙系统...
- 【英语学习】【Level 07】U06 First Time L5 A Different City
- 8599元起!三星Galaxy Z Fold3/Flip3 5G折叠手机国行即将发货
- 数据分析师就是个 SQL boy?
- main函数的argc和argv
- Struts2_01_开发过程与实例说明
- 操作系统课程设计-文件管理系统(JAVA)
- 【概率论】复习资料(手写复习)
- Flash Lite作为S40和S60系列上的特性出现在技术规范中
- dpdk Ipv4组包逻辑解析
- stm32增加固件库工程
- web自动化你需要知道的
- 如何让自己成为优秀员工?
- win10检查更新后,蓝牙没了,卸载usb也没有用,蓝牙 未知usb设备 设备描述符请求失败
- kotlin中mainactivity无法直接调用xml中的控件_个推TechDay广州站:使用Kotlin演进安卓开发生态...
- 这,不是我想要的生活
- P2P视频聊天技术分析
- WordPress邮箱验证(上)
热门文章
- 机器学习算法总结之Boosting:Boosting Tree、GBDT
- java swing 图片切换_在一个界面中要实现图片切换,用java要肿么实现??
- 使用mysql-proxy读写分离时的注意事项_mysql-proxy中Admin Plugin的使用以及读写分离的问题...
- C++中应用于for循环的auto机制,有引用和非引用两种操作
- 虹软人脸识别SDK - Java服务端的那些事
- springcloud21---Config-bus实现配置自动刷新
- 关于servlet中出现GET方法不能应用于此url的解决办法
- 第十九:如何在Windows下把Allure2与Jenkins的集成生成自定义的测试报告(重点超详细)
- zed相机拆机_TX2入门教程硬件篇-外接双目相机ZED
- lisp 读取dwg 统计信息_用阿里云交易和账单管理API实现MaxCompute费用对账分摊统计...