java 夏令时区_java中的夏令时
是的,您应该在
Java 8中使用
Joda-Time或新的java.time包(受Joda-Time启发).
偏移量是从特定日期时间值表示的UTC(GMT)的小时数和分钟数.西海岸是-08:00(忽略夏令时废话),意味着比UTC晚8小时.
请注意,java.time在其初始版本中有一个小错误,它无法处理几分钟(例如08)的偏移而没有分钟(例如08:00).
A time zone是关于夏令时(DST)的偏移加规则,DST更改历史以及有关其他异常的信息.
使用适当的time zone names(主要是大陆斜线城市).避免使用3或4个字母代码,例如EST,它们既不是标准的也不是唯一的.
java.util.Date没有时区,而Joda-Time DateTime则没有.
要获取Web浏览器的时区,请参阅this question.但通常,这不起作用.正如您可能已经看到的,许多网站要求用户选择时区.
您确切的用例令人困惑.通常,最好的方法是使用UTC的日期时间值,然后根据需要调整用户的本地时间.通常最适合您的软件工作和存储日期时间为UTC.然后显示调整为适合用户的本地日期时间.换句话说,全局思考(UTC),在本地呈现(调整本地时区).
通常,系统管理员将其服务器计算机设置为UTC(无时区偏移).如果您的操作系统(如Mac OS X)不提供UTC,则使用Reykjavik,因为冰岛全年使用UTC而没有任何夏令时.同样,数据库引擎几乎总是将日期时间值转换为UTC以进行存储.
当您真正不关心时区或时间时,Joda-Time会提供LocalDate类.但通常最好使用日期时间(DateTime实例),并根据需要格式化仅限日期的字符串.
Joda-Time 2.3中的示例代码.
DateTimeZone timeZoneChina = DateTimeZone.forID( "Asia/Shanghai" );
DateTime dateTimeChina = new DateTime( 2013, 8, 29, 17, 45, 00, timeZoneChina );
DateTime dateTimeUtc = dateTimeChina.withZone( DateTimeZone.UTC );
DateTime dateTimeParis = dateTimeChina.withZone( DateTimeZone.forID( "Europe/Paris" ) );
DateTimeZone timeZoneUsWestCoast = DateTimeZone.forID( "America/Los_Angeles" );
DateTime dateTimeUnitedStatesWestCoast = dateTimeChina.withZone( timeZoneUsWestCoast );
DateTimeFormatter formatter = ISODateTimeFormat.date();
String outputDateOnlyForUnitedStatesWestCoast = formatter.withZone( timeZoneUsWestCoast ).print( dateTimeUtc );
转储到控制台……
System.out.println( "dateTimeChina: " + dateTimeChina );
System.out.println( "dateTimeUtc: " + dateTimeUtc );
System.out.println( "dateTimeParis: " + dateTimeParis );
System.out.println( "dateTimeUnitedStatesWestCoast: " + dateTimeUnitedStatesWestCoast );
System.out.println( "outputDateOnlyForUnitedStatesWestCoast: " + outputDateOnlyForUnitedStatesWestCoast );
跑的时候……
dateTimeChina: 2013-08-29T17:45:00.000+08:00
dateTimeUtc: 2013-08-29T09:45:00.000Z
dateTimeParis: 2013-08-29T11:45:00.000+02:00
dateTimeUnitedStatesWestCoast: 2013-08-29T02:45:00.000-07:00
outputDateOnlyForUnitedStatesWestCoast: 2013-08-29
java 夏令时区_java中的夏令时相关推荐
- java 夏令时区_Java中的夏令时问题
因为在用C#做项目的时候被夏令时坑过一回,所以这次将在java中的时区转换信息做一下记录,很简单 SimpleDateFormat inputFormat = new SimpleDateFormat ...
- java timestamp时区_Java中Date及Timestamp时间相关内容(转)
java.util.date java.sql.date java.sql.timestamp 整理一: java.sql.Date 只存储日期数据不存储时间数据 // 会丢失时间数据 prepare ...
- java mod %区别_Java中 % 与Math.floorMod() 区别详解
%为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...
- java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信
你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...
- java判断类型_Java中类型判断的几种方式 - 码农小胖哥 - 博客园
1. 前言 在Java这种强类型语言中类型转换.类型判断是经常遇到的.今天就细数一下Java中类型判断的方法方式. 2. instanceof instanceof是Java的一个运算符,用来判断一个 ...
- java 序列化实例_Java中的序列化与反序列化实例
创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...
- java 数据类型分为_JAVA中分为基本数据类型及引用数据类型
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...
- java 代码锁_Java中的Lock锁
Lock锁介绍: 在java中可以使用 synchronized 来实现多线程下对象的同步访问,为了获得更加灵活使用场景.高效的性能,java还提供了Lock接口及其实现类ReentrantLock和 ...
- java wait 参数_java中wait()和join()方法的区别是什么
java中wait()和join()方法的区别是:存在不同的java包中:wait()方法用于线程间通信,它所施加的等待状态的线程可以被启动:join()方法用于在多个线程之间添加排序,它所施加的等待 ...
- java thread join()_Java中Thread.join()的使用方法
概要 本文分三个部分对thread.join()进行分析: 1. join() 的示例和作用 2. join() 源码分析 3. 对网上其他分析 join() 的文章提出疑问 1. join() 的示 ...
最新文章
- matlab 无序数对,MATLAB中sort函数对矩阵数进行排序
- Gym - 102460A Rush Hour Puzzle(dfs迭代加深)
- Spring----最小化Spring配置
- uglifyjs报错 webpack_webpack3里使用uglifyjs压缩js时打包报错的解决
- js_组合继承(最常用的继承方式)
- VM虚拟机连Linux黑屏问题
- 确定了C/C++的学习路线之后,便只能是一条路走到黑了
- python学习(day1)初识入门
- 王者荣耀AI即将上线,队友再也不用担心你掉线了
- 全球最厉害的14位程序员
- 不再依赖A*,利用C++编写全新寻路算法
- 315.计算右侧小于当前元素的个数
- 资本纷纷入局,咖啡赛道还能香多久?
- Office ❀ PPT图形中的合并形状梳理
- win10计算机管理找不到用户,win10重装系统后管理账户不见了,win10怎么找到管理账户?...
- python台风动图绘制_python可视化绘图:台风路径可视化
- 大话云原生数据库中的存算分离
- Source Insight 4.0 序列号 license文件
- 打造新老员工双赢机制变对立为统一
- 为什么说施工是最蛋疼的工程行业