Java 分析时区中的日期时间
我有一个从洛杉矶来的约会时间。夏时制在可能的情况下适用。我试图将日期时间转换为时间戳,但我似乎不理解Java8DateTime API。以下代码段返回Java 分析时区中的日期时间,java,java-8,java-time,Java,Java 8,Java Time,我有一个从洛杉矶来的约会时间。夏时制在可能的情况下适用。我试图将日期时间转换为时间戳,但我似乎不理解Java8DateTime API。以下代码段返回1238112000(如果以UTC指定,则该日期是正确的)。我应该更改什么以显示1238137200 String date = "March 27, 2009 00:00:00"; DateTimeFormatter formatter = DateTimeFormatter. ofPat
1238112000
(如果以UTC指定,则该日期是正确的)。我应该更改什么以显示1238137200
String date = "March 27, 2009 00:00:00";
DateTimeFormatter formatter = DateTimeFormatter.
ofPattern("MMMM dd, yyyy HH:mm:ss", Locale.ENGLISH).
withZone(ZoneId.of("America/Los_Angeles"));
LocalDateTime.parse(date, formatter).toEpochSecond(ZoneOffset.UTC))
通过将日期解析为
LocalDateTime
,您将忽略格式化程序中的时区信息。您应该使用:
在返回的实例上,您可以调用。@1.8.0_74。你把所有的密码都拿走了吗?您不应该有这个错误,Eclipse实际上运行的是1.8.0_05。可能是吃剩的虫子。
public static void main(String[] args) {
String date = "March 27, 2009 00:00:00";
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("MMMM dd, yyyy HH:mm:ss", Locale.ENGLISH)
.withZone(ZoneId.of("America/Los_Angeles"));
long second = ZonedDateTime.parse(date, formatter).toEpochSecond();
System.out.println(second); // prints "1238137200"
}