获取 java.time.format.DateTimeParseException:无法在索引 17 处解析文本“2020 年 12 月 5 日上午 10:00:00”(太平洋夏令时)

Getting java.time.format.DateTimeParseException: Text 'December 05, 2020 at 10:00:00 AM PDT' could not be parsed at index 17

提问人:Manisha Biswas 提问时间:6/28/2023 更新时间:6/28/2023 访问量:82

问:

我正在尝试在IntelliJ IDE中运行以下代码并获得解析异常,而该代码适用于在线Java编译器。有人可以帮我了解我做错了什么吗?

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Locale;


public class MyClass {
    public static void main(String args[]) {
      String slot = "December 05, 2020 at 10:00:00 AM PDT";
      String locale = "en-US";
      String timezone = "America/Los_Angeles";
      long epoch = convertDateToLong(slot, locale, timezone);
      System.out.println(epoch);
    }
    
    private static long convertDateToLong (String dateTimeString, String locale, String timezone) {
        ZoneId zoneId = ZoneId.of(timezone);
        String offsetId = ZonedDateTime.ofInstant(Instant.now(), ZoneId.of(timezone)).getOffset().toString();
        DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.LONG).withZone(zoneId).withLocale(Locale.forLanguageTag(locale));
        LocalDateTime localDateTime = LocalDateTime.parse(dateTimeString, formatter);
        long epoch = localDateTime.toEpochSecond(ZoneOffset.of(offsetId));
        return epoch * 1000;
    }
}

enter image description here

java java-time datetimeformatter

评论

0赞 Sweeper 6/28/2023
可能是区域设置问题。请尝试改用格式化程序格式化 a。这样你就知道它期待什么。ZonedDateTime
0赞 Manisha Biswas 6/28/2023
感谢您的回复@Sweeper。不确定问题是否是区域设置,那么为什么它在在线编译器上工作。您能建议我可以使用哪种类型的 ZonedDateTime 格式化程序吗?
0赞 deHaar 6/28/2023
你可以写一个自定义的:例如......甚至可以尝试,也可以。或者你只使用方法中有时失败的方法。DateTimeFormatter.ofPattern("MMMM dd, uuuu 'at' hh:mm:ss a z", Locale.ENGLISH)Locale.US
0赞 g00se 6/28/2023
您的格式实际上需要“2023 Jun 28 04:33:38 PDT”等。但是由于某种原因,您的日期时间字符串包含单词“at”。此外,您的区域设置字符串也是错误的。它应该是 .你有en_USen-US
0赞 Arvind Kumar Avinash 7/15/2023
我看不出你的代码有任何问题。此外,它在我的系统中与 IntelliJ 一起工作没有任何问题。尝试升级 IntelliJ 版本。

答: 暂无答案