上代码

import java.util.TimeZone;public class Tst {public static void main(String[] args) {String time = "Asia/Shanghai";TimeZone myTimeZone =TimeZone.getTimeZone(time);int diff = myTimeZone.getRawOffset()/(1000*60*60)+myTimeZone.getDSTSavings()/(1000*60*60);   System.out.println(diff);}
}

TimeZone的用法

原文:

https://blog.csdn.net/goodbye_youth/article/details/81807273

这次主要整理下Java中TimeZone类的常用方法

一、TimeZone类的定义
TimeZone类是一个抽象类,主要包含了对于时区的各种操作,可以进行计算时间偏移量或夏令时等操作
二、TimeZone类的常用方法
  1、getAvailableIDs()

getAvailableIDs()
获取Java支持的所有时区ID
System.out.println(Arrays.toString(TimeZone.getAvailableIDs()));
1
getAvailableIDs(int rawOffset)
根据 时间偏移量 来获取时区ID
System.out.println(Arrays.toString(TimeZone.getAvailableIDs(28800000)));
1
  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()); 
1
2
3
  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());
1
2
3
4
  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"));
1
2
3
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")));
1
2
3
  5、getDisplayName()

getDisplayName()
获取该TimeZone对象的时区名称
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getDisplayName()); // 中国标准时间
1
2
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
1
2
3
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
1
2
3
4
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
1
2
3
  6、getID()

获取该TimeZone对象的时区ID
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getID()); // Asia/Shanghai
1
2
  6、setID(String ID)

设置该TimeZone对象的时区ID
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
timeZone.setID("Asia/Chongqing");
System.out.println(timeZone.getID()); // Asia/Chongqing
1
2
3
  7、getOffset(long date)

获取该时间所在时区的时间偏移量
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getOffset(System.currentTimeMillis())); // 28800000
1
2
  8、getDSTSavings()

在夏令时规则生效时,返回相对于标准时间提前的毫秒数,如果此时区不实施夏令时,则为 0
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
// 国内没有夏令时,故为0
System.out.println(timeZone.getDSTSavings()); // 0
1
2
3
  9、getRawOffset()

获取时间原始偏移量,该值不受夏令时的影响,故称为时间原始偏移量
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.getRawOffset()); // 28800000
1
2
  10、setRawOffset(int offsetMillis)

设置时间原始偏移量
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
timeZone.setRawOffset(25200000);
System.out.println(timeZone.getRawOffset()); // 25200000
1
2
3
  11、toZoneId()

将TimeZone对象转换为ZoneId对象
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
ZoneId zoneId = timeZone.toZoneId();
System.out.println(zoneId); // Asia/Shanghai
1
2
3
  12、useDaylightTime()

查询此时区是否使用夏令时
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.useDaylightTime()); // false
1
2
  13、inDaylightTime(Date date)

查询给定的日期是否在此时区的夏令时中
TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai");
System.out.println(timeZone.inDaylightTime(new Date())); // false
1
2
  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

根据Timezone或者时区差JAVA相关推荐

  1. oracle 8小时问题,时区差8小时问题解决

    时区差八小时这个问题在程序员身上很普通 普及: 注:采用+8:00格式,没有指定MySQL驱动版本的情况下它自动依赖的驱动高版本的mysql,这是由于数据库和系统时区差异所造成的,mysql默认的是美 ...

  2. 机器时区导致Java时间与当前时间相差13小时的解决方案

    在机器使用date命令获取的时间与当前时间一致,但在Java中去获取时间相差了13个小时,这很可能就是机器的时区不太满足当前需要,这时候可以在Java中获取一下时区: 测试机器时区 import ja ...

  3. java 时区_世界时区和Java时区详解

    0.引言 Druid中时区的问题一直困扰着我们,所以我专门去研究了一下世界时区和Java中的时区,对使用Druid很用帮助. 1.UTC时间&GMT时间 UTC时间是时间标准时间(Univer ...

  4. 解决vue 提交日期格式数据,时间出现时区差的问题

    解决vue 提交日期格式数据,时间出现时区差的问题 一.错误源: 在自定义create_time ,进行前端vue 向后端django 传入数据时,发现 {'create_time': [ErrorD ...

  5. Java中TimeZone(时区)类的简单使用

    package com.wk.timeimport java.util.TimeZone;public class LocaleTimeZone {public static void main(St ...

  6. 时区 java 巴黎,关于时区:Java没有有关所有IANA时区的信息

    我正在尝试将来自前端的值映射到ZoneId类,如下所示: Optional.ofNullable(timeZone).map(ZoneId::of).orElse(null) 在大多数时区,它工作正常 ...

  7. timezone java_如何将Java日期转换为特定的TimeZone格式

    timezone java In the last example, we learned how to convert Date to String in Java. In this example ...

  8. java zoneid 中国_关于时区:Java 8 Time API – ZonedDateTime – 在解析时指定默认的ZoneId...

    我正在尝试编写一个泛型方法来返回ZonedDateTime给定日期为String及其格式. 如果String未在日期String中指定,我们如何使ZonedDateTime使用默认ZoneId? 它可 ...

  9. 奇葩!!!同为‘CST时区‘,java与mysql相差13个小时

    目录 摘要 CST 时区 排错过程 解决方案(一) 解决方案(二) 摘要 名为 CST 的时区是一个很混乱的时区,在与 MySQL 协商会话时区时,Java 会误以为是 CST -0500,而非 CS ...

最新文章

  1. 用 Winetricks 配置 WINE
  2. 神经网络-预测财产损失
  3. STM32 IO口输入输出模式的简洁见解
  4. [NOI2007] 货币兑换 (dp+李超树维护凸包)
  5. Bitwise聘请前联邦检察官Katherine Dowling担任总法律顾问
  6. cad2017怎么改变选择方式_诠网科技|企业网络推广方式要怎么选择?
  7. 论文赏析[EACL17]K-best Iterative Viterbi Parsing(K-best迭代维特比句法分析)
  8. 《iOS 6核心开发手册(第4版)》——1.13节秘诀:从滚动视图中拖动
  9. 关于静态事件 static event 的二三事
  10. paip.广告过滤系统 php 实现
  11. 嵌入式物联网软件开发实战
  12. python几何拼贴画_什么是拼贴艺术、集合艺术、拼贴画?
  13. model.train()与model.eval()的用法
  14. 手机信令数据怎么获得_运用手机信令数据研究大都市区空间结构 ——以南昌大都市区为例...
  15. python requests默认超时时间_requests获取响应时间和超时
  16. 影视剪辑,自学剪辑的转场与准则,掌握一门剪辑技能
  17. 实验3 STP简单配置及介绍
  18. 照花台、无锡景、探清水河调
  19. 关于U盘变成RAW格式 windows无法格式化的解决方法
  20. MTK7681——HLK_M35模块调试

热门文章

  1. iso14443协议中文版
  2. Bolg社区个人总结
  3. Springboot 同一次调用日志怎么用ID串起来,方便最终查找
  4. brackets 的使用
  5. Control-Stanley
  6. MacBook装Windows 10后温度过高/风扇过响的解决办法
  7. Hexo在Github中搭建博客系统(7)万网域名解析到Github Pages
  8. 《人生果实》经典语录
  9. mouseover 和 onmouseover 区别
  10. windows/prefetch文件夹能删吗?里面都是些什么文件,有什么作用??