我有一个在未连接到互联网的设备上运行的应用程序。操作系统是Windows XP。有C++模块和Java模块通过套接字进行交互。 Java部分需要根据其日期和时间从C++部分获取文件。当DST开关到达时,他们停止工作。似乎C++忽略了DST,因为Windows尚未下载年度DST更新,而Java根据它具有的某些内部表来处理DST。我正在编程的设备必须能够连续运行,与网络断开连接以及在不同的国家/地区使用。我的问题是:如何使Java和C++都忽略外部更新并根据一些预定义的DST表进行操作。 解决方案如下: 将日期编码为包…

2020年11月24日 0条评论 39点热度 阅读全文

夏令时于11月1日凌晨2点在美国/美国东部时区结束。结果,2 AM变为1 AM。 我无法理解下面给出的代码中的以下内容: 为什么第2行显示时间09:00,为什么不显示10:00(加1天)? 为什么第4行显示时间10:00,为什么不显示09:00(加24小时)? LocalDateTime ld = LocalDateTime.of(2015, Month.OCTOBER, 31, 10, 0); ZonedDateTime date = ZonedDateTime.of(ld, ZoneId.of("US/East…

2020年10月25日 0条评论 21点热度 阅读全文

我有一个对象Shift,它具有两个字段:来自Joda-Time的startDateTime和endDateTime作为DateTime。 我的工作包括夏令时的英国更改。它以25/03/2017 13:00开头,以26/03/2017 02:00结束(基本上应该以26/03/2017 01:00结尾,但是此日期不存在,并且endDate偏移了+1小时)。根据此site: 即将达到当地标准时间 2017年3月26日,星期日,01:00:00时钟向前进1个小时, 2017年3月26日,星期日,当地夏令时改为。 现在,如果…

2020年8月18日 0条评论 25点热度 阅读全文

java.time.zone.ZoneRules#nextTransition没有返回1991年欧洲/莫斯科的DST更改,我无法获得1991年欧洲/莫斯科的DST边界。Europe / Moscow entered daylight saving on 1991-03-31 02:00 but also changed their standard offset,因此偏移量(+03:00)保持不变,而没有Java API可用于获取DST开始的边界。 import java.time.ZoneId; import j…

2020年5月12日 0条评论 16点热度 阅读全文

我已将模拟器设置为此时区:org.apache.harmony.luni.internal.util.ZoneInfo["CET",mRawOffset=3600000,mUseDst=true] 这是布鲁塞尔时间,这里有夏令时,所以夏天是格林尼治标准时间+02:00,冬天是格林尼治标准时间+01:00。 但是,以编程方式无法检测到1970年7月的DST,但可以检测到2011年的DST。例如: TimeZone tz = TimeZone.getDefault(); if(tz.inDaylightTime(new…

2020年1月14日 0条评论 11点热度 阅读全文

我有一个Java类,该类接受位置的纬度/经度,并在启用和关闭夏令时时返回GMT偏移量。我正在寻找一种简单的方法来确定Java中当前日期是否为夏令时,以便我可以应用正确的偏移量。目前,我只针对美国时区执行此计算,尽管最终我也希望将其扩展到全局时区。 解决方案如下: 这是在其上询问问题的机器的答案: TimeZone.getDefault().inDaylightTime( new Date() ); 尝试为客户端解决此问题的服务器将需要客户端的时区。有关原因,请参见@Powerlord答案。 对于任何特定的时区 Ti…

2019年8月11日 0条评论 27点热度 阅读全文

对于夏令时的开始和结束,我得到了不同的结果。 ZoneId zone = ZoneId.of("Australia/Melbourne"); System.out.println(ZonedDateTime.of(2019, 04, 07, 3, 0, 0, 0, zone)); // statement-1 System.out.println(ZonedDateTime.of(2019, 10, 06, 2, 0, 0, 0, zone)); // statement-2 对于2019年的第一天的日光节约时间,…

2019年6月19日 0条评论 16点热度 阅读全文

我有一个EJB 2.1实体bean,它查询Oracle表中的“生日”列。数据库中的列的类型为DATE。该查询工作正常,除了一个特定的日期:1916年5月1日。 这与夏令时有关。 Oracle将日期存储为:5/1/1916 1:00:00 AM,而所有其他日期的时间设置为12:00:00 AM(例如1/7/1971 12:00:00 AM)。 在生产/接受系统上,1916年5月1日的查询(使用EJB-QL!)不返回任何结果。奇怪的是,它确实可以在我的开发/测试系统上运行。我检查了各种系统上的数据库设置,发现DBTIM…

2019年6月15日 0条评论 23点热度 阅读全文

我有一个EJB 2.1实体bean,它查询Oracle表中的“生日”列。数据库中的列的类型为DATE。该查询工作正常,除了一个特定的日期:1916年5月1日。 这与夏令时有关。 Oracle将日期存储为:5/1/1916 1:00:00 AM,而所有其他日期的时间设置为12:00:00 AM(例如1/7/1971 12:00:00 AM)。 在生产/接受系统上,1916年5月1日的查询(使用EJB-QL!)不返回任何结果。奇怪的是,它确实可以在我的开发/测试系统上运行。我检查了各种系统上的数据库设置,发现DBTIM…

2019年2月11日 0条评论 17点热度 阅读全文