热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java时区_Java时区转换

小编典典tl;drZonedDateTime.now(ZoneId.of(Pacific/Auckland))//Currentmome

小编典典

tl; dr

ZonedDateTime.now( ZoneId.of( "Pacific/Auckland" )) // Current moment in a particular time zone.

.withZoneSameInstant( ZoneId.of( "Asia/Kolkata" )) // Same moment adjusted into another time zone.

细节

java.util.Date类未分配时区†,但是其toString实现令人困惑地应用了JVM的当前默认时区。

避免使用java.util.Date和.Calendar

这是避免与Java捆绑在一起的臭名昭著的java.util.Date,.Calendar和SimpleDateFormat类的众多原因之一。避免他们。而是使用以下任一方法:

Java 8中内置的java.time软件包是受Joda-Time启发的。

Joda-Time

java.time

Java 8和更高版本具有内置的java.time软件包。该软件包的灵感来自Joda-Time。尽管它们有一些相似之处和类名,但它们是不同的。每个都有其他不足的特征。一个显着的区别是java.time避免使用构造函数,而是使用静态实例化方法。这两个框架都由同一个人Stephen Colbourne领导。

在ThreeTen-Backport项目中,许多java.time功能都已反向移植到Java 6和7 。在ThreeTenABP项目中进一步适用于Android 。

就本课题而言,它们以相同的方式工作。指定一个时区,并调用一个now方法以获取当前时刻,然后基于旧的不可变实例创建一个新实例以适应时区。

请注意两个不同的时区类别。一个是命名时区,其中包括夏令时的所有规则和其他此类异常以及与UTC的偏移量,而另一个仅是偏移量。

ZoneId zoneMontréal = ZoneId.of("America/Montreal");

ZonedDateTime nowMontréal = ZonedDateTime.now ( zoneMontréal );

ZoneId zOneTokyo= ZoneId.of("Asia/Tokyo");

ZonedDateTime nowTokyo = nowMontréal.withZoneSameInstant( zoneTokyo );

ZonedDateTime nowUtc = nowMontréal.withZoneSameInstant( ZoneOffset.UTC );

Joda-Time

以下是Joda-Time 2.3中的一些示例代码。在StackOveflow中搜索更多示例和更多讨论。

DateTimeZone timeZOneLondon= DateTimeZone.forID( "Europe/London" );

DateTimeZone timeZOneKolkata= DateTimeZone.forID( "Asia/Kolkata" );

DateTimeZone timeZOneNewYork= DateTimeZone.forID( "America/New_York" );

DateTime nowLOndon= DateTime.now( timeZoneLondon ); // Assign a time zone rather than rely on implicit default time zone.

DateTime nowKolkata = nowLondon.withZone( timeZoneKolkata );

DateTime nowNewYork = nowLondon.withZone( timeZoneNewYork );

DateTime nowUtc = nowLondon.withZone( DateTimeZone.UTC ); // Built-in constant for UTC.

我们在宇宙的时间轴上有四个相同时刻的表示。

†实际上,java.util.Date该类确实在其源代码中隐藏了一个时区。但出于大多数实际目的,该班级忽略了该时区。因此,简而言之,通常说juDate没有分配时区。令人困惑?是。避免使用juDate造成混乱,并使用Joda-Time和/或java.time。

2020-03-02


推荐阅读
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了如何将CIM_DateTime解析为.Net DateTime,并分享了解析过程中可能遇到的问题和解决方法。通过使用DateTime.ParseExact方法和适当的格式字符串,可以成功解析CIM_DateTime字符串。同时还提供了关于WMI和字符串格式的相关信息。 ... [详细]
  • JVM:33 如何查看JVM的Full GC日志
    1.示例代码packagecom.webcode;publicclassDemo4{publicstaticvoidmain(String[]args){byte[]arr ... [详细]
  • 生产环境下JVM调优参数的设置实例
     正文前先来一波福利推荐: 福利一:百万年薪架构师视频,该视频可以学到很多东西,是本人花钱买的VIP课程,学习消化了一年,为了支持一下女朋友公众号也方便大家学习,共享给大家。福利二 ... [详细]
  • 如何设置定时器在c#中的特定时间执行我有一个要求,我需要在每天00:01:00AM执行计时器…但我没有得到如何实现这一点..如果我正在采取系统时间,它可以是不同的格式. ... [详细]
  • jvm内存区域与溢出为什么学习jvm木板原理,最短的一块板决定一个水的深度,当一个系统垃圾收集成为瓶颈的时候,那么就需要你对jvm的了解掌握。当一个系统出现内存溢出,内存泄露的时候 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • 本文讨论了使用差分约束系统求解House Man跳跃问题的思路与方法。给定一组不同高度,要求从最低点跳跃到最高点,每次跳跃的距离不超过D,并且不能改变给定的顺序。通过建立差分约束系统,将问题转化为图的建立和查询距离的问题。文章详细介绍了建立约束条件的方法,并使用SPFA算法判环并输出结果。同时还讨论了建边方向和跳跃顺序的关系。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
author-avatar
刘刘刘存乐_626
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有