java calendar时间计算_Java Calendar计算所在时区的时间偏移量

news/2024/7/24 7:42:37 标签: java calendar时间计算

1、通过Calendar对象,根据系统时间计算时区偏移量、夏令时时间

System.out.println("当前时间:"+new Date());

// Calendar.getInstance() 获取Calendar实例,并获取系统默认的TimeZone

Calendar calendar = Calendar.getInstance();

System.out.println("Calendar的系统默认TimeZone ID:" +

calendar.getTimeZone().getID());

// 指定时区,例如意大利的罗马时区:Europe/Rome

// 罗马时区属于东1区,也就是UTC+1或GMT+1

TimeZone itTimeZone = TimeZone.getTimeZone("Europe/Rome");

// Calendar指定罗马时区

calendar.setTimeZone(itTimeZone);

System.out.println("Calendar指定TimeZone ID:" + itTimeZone.getID());

// 夏令时时间,比标准时间快1小时,即3600000毫秒,

// 根据系统时间计算,如果不在夏令时生效范围内,则为0毫秒,反之为3600000毫秒

int dstOffset = calendar.get(Calendar.DST_OFFSET);

// 取得与GMT之间的时间偏移量,例如罗马属于东1区,则时间偏移量为3600000毫秒

int zoneOffset = calendar.get(Calendar.ZONE_OFFSET);

System.out.println("夏令时时间:"+dstOffset);

System.out.println("时间偏移量:"+zoneOffset);

执行结果:

# 非夏令时

当前时间:Tue Jan 01 15:48:11 CST 2019

Calendar的系统默认TimeZone ID:Asia/Shanghai

Calendar指定TimeZone ID:Europe/Rome

夏令时时间:0

时间偏移量:3600000

# 夏令时

当前时间:Sat Jun 01 15:52:43 CST 2019

Calendar的系统默认TimeZone ID:Asia/Shanghai

Calendar指定TimeZone ID:Europe/Rome

夏令时时间:3600000

时间偏移量:3600000

2、通过Calendar对象,根据指定时间计算时区偏移量、夏令时时间。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = dateFormat.parse("2019-01-12 00:00:00");

System.out.println("当前时间:"+ dateFormat.format(date));

// Calendar.getInstance() 获取Calendar实例,并获取系统默认的TimeZone

Calendar calendar = Calendar.getInstance();

System.out.println("Calendar的系统默认TimeZone ID:" +

calendar.getTimeZone().getID());

System.out.println("Calendar的默认时间:" +

dateFormat.format(calendar.getTime()));

// 指定时区,例如意大利的罗马时区:Europe/Rome

// 罗马时区属于东1区,也就是UTC+1或GMT+1

TimeZone itTimeZone = TimeZone.getTimeZone("Europe/Rome");

// Calendar指定罗马时区

calendar.setTimeZone(itTimeZone);

System.out.println("Calendar指定TimeZone ID:" + itTimeZone.getID());

// 指定时间

calendar.setTime(date);

System.out.println("Calendar指定时间:" + dateFormat.format(calendar.getTime()));

// 夏令时时间,比标准时间快1小时,即3600000毫秒,

// 根据系统时间计算,如果不在夏令时生效范围内,则为0毫秒,反之为3600000毫秒

int dstOffset = calendar.get(Calendar.DST_OFFSET);

// 取得与GMT之间的时间偏移量,例如罗马属于东1区,则时间偏移量为3600000毫秒

int zoneOffset = calendar.get(Calendar.ZONE_OFFSET);

System.out.println("夏令时时间:"+dstOffset);

System.out.println("时间偏移量:"+zoneOffset);

执行结果:

# 非夏令时

当前时间:2019-01-12 00:00:00

Calendar的系统默认TimeZone ID:Asia/Shanghai

Calendar的默认时间:2019-06-01 15:58:11

Calendar指定TimeZone ID:Europe/Rome

Calendar指定时间:2019-01-12 00:00:00

夏令时时间:0

时间偏移量:3600000

# 夏令时

当前时间:2019-04-12 00:00:00

Calendar的系统默认TimeZone ID:Asia/Shanghai

Calendar的默认时间:2019-06-01 16:00:13

Calendar指定TimeZone ID:Europe/Rome

Calendar指定时间:2019-04-12 00:00:00

夏令时时间:3600000

时间偏移量:3600000


http://www.niftyadmin.cn/n/856872.html

相关文章

JVM与类加载器记录

JVM内存,类加载过程与反编译CLASS文件一、JVM执行1.jvm概念2.类加载2.1 加载体系2.2 加载过程3.内存区域3.1 程序计数器(线程私有)3.2 栈(线程私有)3.3 本地方法区(线程私有)3.4 堆(线程共享)3.5 方法区/元空间(线程共享&#xff…

java double 赋值语句_Java中float、double、long类型变量赋值添加f、d、L尾缀问题

展开1. 添加尾缀说明我们知道Java在变量赋值的时候,其中float、double、long数据类型变量,需要在赋值直接量后面分别添加f或F、d或D、l或L尾缀来说明。其中,long类型最好以大写L来添加尾缀,因为小写l容易和数字1混淆。例如&#x…

Java集合List解析记录

Java集合,针对于ArrayList源码解析一、Collection1.1 ArrayList1.1.1 构造1.1.2 常用方法添加修改删除查找其他操作1.2 Vector1.3 LinkedList二、工具类2.1 Arrays总结集合类存放于 Java.util 包中,主要有 3 种:set(集)、list(列表…

VIM常用操作记录

VSCODE搭配VIM使用以及VIM常用命令汇总前言一、VSCODE使用VIM1.安装VIM插件2.其它配置二、常用操作命令光标操作代码操作总结前言 结合了官方文档和一些博主的分享内容,并根据公司的GIT操作要求在这里总结了一篇比较简要的文章,希望多多少少可以帮到大家…

GIT操作与规范记录

GIT命令行常用操作与COMMIT规范提交记录GIT操作记录一、COMMIT 提交规范Header部分Body部分二、分支管理1.开发阶段2.上线阶段三、GIT命令行操作远程仓库代码操作分支操作忽略文件总结GIT操作记录 结合了官方文档和一些博主的分享内容,并根据公司的GIT操作要求在这…

java linux 通信_在Linux命令行里与其他用户通信

在 Linux 命令行里向其他用户发送信息很简单,很多命令都可以做到这点,麻烦的是你需要从众多命令中挑选一个合适的命令来使用。因此,我挑选了四种常用的 Linux 用户通信命令分享给大家并为你们讲解这四种命令是如何工作的。wallwall命令(意为 …

SMAPI Mod制作思路

StardewValley对于SMAPI下Mod制作思路前言一、全局事件1.日志打印2.I18n二、绘制操作1.物品单价提示总结前言 在这里就不一一介绍SMAPI的安装使用以及简单的mod项目搭建了,现在直接开始针对于N网优秀的mod源码进行解析,会长期慢慢更新内容 一、全局事件…

Unity横版Games基础功能实现

Unity2D横板类型游戏基础功能实现一、基础组件TileMap刚体移动动画切换角色碰撞体二、组件部分Cinemachine(镜头跟踪)总结一、基础组件 TileMap 切分素材 新建 TileMap,他会连同 Grid 一起出现,对贴图进行属性设置 然后点击 Spr…