org.threeten.bp.format.DateTimeParseException:无法在$ .root.bsa [0]的索引25处解析文本'Sat Sep 19 2020 07:14 AM PDT'

问题描述

我正在尝试解析一个看起来像这样的日期: Sat Sep 19 2020 07:14 AM PDT 变成zoneddatetime

我正在使用此格式化程序

DateTimeFormatter.ofPattern(
  "EEE MMM dd yyyy hh:mm a zzz",Locale.US
)

并且我正在尝试将字符串转换

zoneddatetime.parse(
  value,formatter
)

但是,这引发了以下异常: org.threeten.bp.format.DateTimeParseException: Text 'Sat Sep 19 2020 07:14 AM PDT' Could not be parsed at index 25 at $.root.bsa[0].posted

我不确定我的日期格式字符串中的错误在哪里:我已经通过http://www.fileformat.info/tip/java/simpledateformat.html进行了验证,但是看起来在那里的格式正确。

其他上下文:此代码正在moshi适配器中执行,并正在Android应用程序中运行:

class zoneddatetimeAdapter {
    private val formatter = DateTimeFormatter.ofPattern( "EEE MMM dd yyyy hh:mm a z",Locale.US )

    @FromJson
    fun fromJson(value: String): zoneddatetime {
        return zoneddatetime.parse( value,formatter )
    }

    @ToJson
    fun toJson(value: zoneddatetime): String {
        return value.toString()
    }
}

解决方法

您尝试过这样吗?

=UNIQUE(FILTER(B1:B12,A1:A12="mike"))

打印

String s = "Sat Sep 19 2020 07:14 AM PDT";
ZonedDateTime z = ZonedDateTime.parse(s,DateTimeFormatter.ofPattern(
                "EEE MMM dd yyyy hh:mm a z"));
System.out.println(z);