首页 / 知识
关于java:确定日期的夏令时的算法?
2023-04-15 20:24:00

Algorithm to determine Daylight Saving Time of a date?最初,我在Actionscript中寻找解决方案。 这个问题的关键是算法,当时钟必须切换夏令时时,它会检测确切的分钟。 因此,例如在10月25日至10月31日之间,我们必须检查一下,如果实际日期是星期天,则是在2点之前或之后... 没有真正的算法来处理夏时制。 基本上,每个国家/地区都可以自行决定DST的开始时间和结束时间。 作为开发人员,我们唯一能做的就是使用某种表进行查找。 大多数计算机语言都在语言中集成了这样的表格。
在Java中,可以使用TimeZone类的 下面的程序是一个示例:(请注意,如果某个时区在某年没有DST,它可能会产生意外结果)
Richters的答案是正确的,应该接受。 正如Richters所指出的,夏令时(DST)或其他异常情况没有逻辑。政治家任意重新定义其时区中使用的UTC偏移量。他们做出这些改变的时候常常没有什么预警,甚至完全没有警告,就像朝鲜几周前所做的那样。 java.time 这里有一些进一步的想法,以及使用现代java.time类的示例代码,该类继他的Answer中显示的Joda-Time类之后。 ICANN维护的列表tzdata(以前称为Olson数据库)中跟踪了这些更改。您的Java实现,主机操作系统和数据库系统都可能拥有该数据的自己的副本,当更改为您关心的区域的模式时,必须根据需要替换这些副本。这些更改没有逻辑,因此无法以编程方式预测这些更改。您的代码必须调用tzdata的新副本。
实际上,您无需确定转换点。一个好的日期时间库会自动为您处理。
Java具有最好的此类库,即业界领先的java.time类。当您要求某个地区(时区)中某个日期的日期时,如果该日期时间无效,则会自动进行调整。阅读
请注意,结果是3 AM,而不是请求的2 AM。该日期当天该区域没有凌晨2点。因此,java.time调整为凌晨3点,因为时钟"提前"了一个小时。
如果您需要研究为时区定义的规则,请使用 获取当前时刻使用的DST偏移量。
获取下一个计划的更改,以
以 关于java.time
java.time框架内置于Java 8及更高版本中。这些类取代了麻烦的旧的旧式日期时间类,例如 现在处于维护模式的Joda-Time项目建议迁移到java.time类。 要了解更多信息,请参见Oracle教程。并在Stack Overflow中搜索许多示例和说明。规格为JSR 310。
您可以直接与数据库交换java.time对象。使用与JDBC 4.2或更高版本兼容的JDBC驱动程序。不需要字符串,不需要 在哪里获取java.time类?
ThreeTen-Extra项目使用其他类扩展了java.time。该项目为将来可能在java.time中添加内容提供了一个试验场。您可能会在这里找到一些有用的类,例如 |
最新内容
相关内容
linux磁盘检测命令?
linux磁盘检测命令?,情况,系统,数据,检测,管理,信息,命令,磁盘,设备,单位,linux查看磁盘空间命令1、查看磁盘空间-du du命令也是检查硬盘使用硬盘检测命令linux?
硬盘检测命令linux?,信息,情况,系统,管理,数据,检测,百分比,命令,工具,设备,linux查看硬件命令有哪些《Linux就该这么学》给同学们介绍一下查linux性能检测命令?
linux性能检测命令?,系统,情况,信息,状态,工具,实时,百分比,指标,分析,命令,查看linux的cpu和内存要查看CPU使用情况,可以使用top命令。Top命令linux系统时钟命令?
linux系统时钟命令?,时间,系统,命令,信息,城市,网上,资料,时区,终端,时分,linux修改时间1、inux修改时间命令是date-s+时分秒。修改linux系统linux命令解决方案?
linux命令解决方案?,系统,管理,数据,电子,工作,电脑,软件,情况,不了,档案,linux处理/tmp文件空间不足1、删除缓存文件 缓存文件是临时存储在磁linux修改时钟命令?
linux修改时钟命令?,时间,系统,大陆,国家,时区,命令,信息,终端,时钟,日期,linux怎么修改时间inux修改时间命令是date-s+时分秒。修改linux系统linux中日期相关命令?
linux中日期相关命令?,时间,系统,信息,命令,代码,服务,工作,工具,终端,时分,linux修改系统时间命令首先输入date的时候,系统输出的是linux的当防篡改算法linux命令?
防篡改算法linux命令?,技术,网络,系统,数据,区块链,电子,交易,信息,网站,国际,编程高手来啊!!!急啊!!!在你的倒数第5两行中间插入一行:Call Dealinux设日期时间命令?
linux设日期时间命令?,时间,系统,命令,国家,环境,数据,电脑,标准,信息,大陆,linux中在vim编辑器中使用date命令vim显示历史命令,先按q,再按:q:vimlinux时钟同步命令?
linux时钟同步命令?,时间,系统,服务,中国,地址,公共,管理,时钟,服务器,界面,怎么让linux自动同步时间?将系统时间设定成下午1点12分0秒的命令linux系统改日期命令?
linux系统改日期命令?,时间,系统,信息,命令,终端,时分,窗口,操作系统,一下吧,日期,LINUX系统如何修改时间命令?打开linux系统,在linux的桌面的linux检测硬件的命令?
linux检测硬件的命令?,信息,系统,检测,工具,第一,数据,设备,分析,实时,百度,如何查看linux系统CPU信息cpu信息记录在/proc/cpuinfo中。linux怎