Joda时间为BST时区提供了解析例外,但对于GMT却没有]]

问题描述 投票:1回答:3

我正在尝试将当前日期与输入日期进行比较,并以“ EEE MMM dd HH:mm:ss zzz yyyy”格式接收]

这段代码在我的输入字符串为Wed Apr 01 09:00:00 GMT 2020时有效,但在其Wed Apr 01 09:00:00 BST 2020时无效。

        DateTime currentTime =DateTime.now().withZone(DateTimeZone.forID("Europe/London"));
        DateTimeFormatter fmt = DateTimeFormat.forPattern("EEE MMM dd HH:mm:ss zzz yyyy");
        DateTime inputDateTime = fmt.parseDateTime("Wed Apr 01 09:00:00 BST 2020");


        if (inputDateTime.isBefore(currentTime))
            Log.d(TAG, "if ");
        else
            Log.d(TAG, "else ");

关于我在做什么错的任何想法?另外,请随时建议是否有更好的方法(由于我们支持android API 19+,因此不能使用新的Java日期和时间库)

我正在尝试将当前日期与输入日期进行比较,格式为“ EEE MMM dd HH:mm:ss zzz yyyy”。当我的输入字符串为Wed Apr 01 09:00:00 GMT时,这段代码有效2020,但没有...

java android date datetime-format android-jodatime
3个回答
1
投票

[Docs提到无法在joda Time zone names中解析DateTimeFormat,因为时区缩写不明确,并且解析器无法确切知道它是哪个时区


0
投票

我不确定这是否满足您对Andriod API 19+的要求,但这是使用SimpleDateFormatter进行日期格式的内容


0
投票
LocalDate date = LocalDate.now();
  String text = date.format(fmt);
  LocalDate parsedDate = LocalDate.parse(text, formatter);
© www.soinside.com 2019 - 2024. All rights reserved.