我使用此下拉列表为应用程序存储与UTC相关的时区:
<select id="timezone" name="timezone" >
<option value="-12">[UTC - 12] Baker Island Time</option>
<option value="-11">[UTC - 11] Niue Time, Samoa Standard Time</option>
<option value="-10">[UTC - 10] Hawaii-Aleutian Standard Time, Cook Island Time</option>
<option value="-9.5">[UTC - 9:30] Marquesas Islands Time</option>
<option value="-9">[UTC - 9] Alaska Standard Time, Gambier Island Time</option>
<option value="-8">[UTC - 8] Pacific Standard Time</option>
<option value="-7">[UTC - 7] Mountain Standard Time</option>
<option value="-6">[UTC - 6] Central Standard Time</option>
<option value="-5">[UTC - 5] Eastern Standard Time</option>
<option value="-4.5">[UTC …Run Code Online (Sandbox Code Playgroud) 我不住在使用夏令时的国家.
LocalDateTime,从UTC和ZoneIdDB中保留了偏移量LocalDateTime区域如果我申请ZoneId和偏移以获得该LocalDateTime区域,java.timeAPI 如何正确得到这个?它如何知道政府改变规则?它是否从互联网上获取更新?
我正在针对外部 API 进行编码,该 API 将似乎是 Windows 时区描述的内容返回为字符串,例如“浪漫标准时间”,我需要将它们解析为 javaZoneId或偏移量。此处提供了这些值的列表。
该java.time.ZoneId文件指出:
时区规则由政府定义并经常更改。有许多组织(此处称为组)监视时区更改并对其进行整理。默认组是 IANA 时区数据库 (TZDB)。其他组织包括 IATA(航空业机构)和微软。
所以我的问题是,是否存在java.time.zone.ZoneRulesProviderjavadoc 中提到的来自 Microsoft的公共实现?
我知道 Microsoft 时区和标准 IANA TZDB 之间存在关系,例如参见这个问题。但我想知道的是,是否存在ZoneRulesProvider我可以作为属性传入的标准实现,如 javadoc 中所述:
如果定义了系统属性 java.time.zone.DefaultZoneRulesProvider ,则它被视为要作为默认提供程序加载的具体 ZoneRulesProvider 类的完全限定名称,使用系统类加载器。
我有以下代码以某种格式获取当前时间。当我在我的笔记本电脑上测试它时,这在本地工作得非常好。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS z");
ZonedDateTime date = ZonedDateTime.now();
String timeStamp = formatter.format(date);
Run Code Online (Sandbox Code Playgroud)
以上在本地工作,时间戳值采用以下格式:2020-02-24 05:23:20.675 MST
但是当我将其推送到生产时,格式更改为:2020-02-24 05:23:20.675 -07:00
我无权访问生产设置,处理它的团队在另一个时区,现在无法获得它们。相信这是他们最后的一些设置,但有什么我可以做的,格式总是像:2020-02-24 05:23:20.675 MST?
请指教,谢谢。
使用Java我有一个SimpleTimeZone具有GMT偏移和来自遗留系统的夏令时信息的实例.
我想检索ZoneId能够使用Java 8时间API.
实际上,toZoneId返回ZoneId没有夏令时的信息
SimpleTimeZone stz = new SimpleTimeZone( 2 * 60 * 60 * 1000, "GMT", Calendar.JANUARY,1,1,1, Calendar.FEBRUARY,1,1,1, 1 * 60 * 60 * 1000);
stz.toZoneId();
Run Code Online (Sandbox Code Playgroud)