当前位置: 首页 > 知识库问答 >
问题:

如何使用星期几将Javascript日期解析为Java LocalDateTime

东方权
2023-03-14

我正在尝试将存储在mongoDb中的Javascript日期转换为Java LocalDateTime ISO\u Date\u TIME,并且我一直遇到ParseException,我不知道为什么我的代码会出错。首先,代码

解析器:

public static final class StringToLocalDateTimeConverter implements Converter<String, LocalDateTime> {

        public static final StringToLocalDateTimeConverter INSTANCE = new StringToLocalDateTimeConverter();

        private StringToLocalDateTimeConverter() {}

        @Override
        public LocalDateTime convert(String source) {
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSX");
            return StringUtil.isNullOrEmpty(source) ? null : LocalDateTime.parse(source, formatter);
        }
    }

传递的日期格式为“2021 10月7日星期四21:29:36 GMT 0000(协调世界时)”

我收到的错误是:

getUserById()中的异常,原因='java.time.format.DateTimeParseException: Text'Thu Oct07 2021 21:29:36GMT 0000(国际协调时间)'无法在索引0解析'和异常='无法从type[java.lang.String]转换为type[java.time.LocalDateTime]的值'Thu Oct07 2021 21:29:36GMT 0000(国际协调时间)';嵌套异常java.time.format.DateTimeParseException: Text'Thu Oct07 2021 21:29:36GMT 0000(国际协调时间)'无法在索引0解析'

解析器似乎不知道如何处理一周中的第一天。如有任何建议,将不胜感激!

共有1个答案

严正诚
2023-03-14

您的日期格式模式错误,无法解析日期字符串。

String parsePattern = "EEE MMM dd yyyy HH:mm:ss O (zzzz)";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(parsePattern);


String dateString = "Wed Jan 26 2022 22:33:07 GMT+1 (Central European Standard Time)";
LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
System.out.println(dateTime); // result 2022-01-26T22:33:07
 类似资料:
  • 问题内容: 如果我有一个, 并且想要获得一周中的特定时间(由0(星期日)至6(星期六)指定)。 例如,如果我有as 和as ,我想得到,如果我有as , 编辑: 你们大多数人都误解了它。我有一些日期,并且想要获得由同一周的0-6指定的日期。 所以不,我不要… 的日子 问题答案: 我想这就是你想要的。

  • 问题内容: 我有当前日期,还有一个常数,它指示星期几。我想基于该常数获取一周的开始日期。如果我将一周的第一天硬编码为星期一(或其他任何东西),那么这很简单。但是一周的第一天一直在变化。因此,我不想在每次更改第一天时都更改代码。 这是我尝试使用Java的Calendar的方法: 我想获取一周的开始日期。上面的函数返回星期的第一天,并且星期开始日期被硬编码为星期六。每当星期开始日期以上的要求发生变化时

  • 问题内容: 我想找出以下内容:给定日期(对象),星期几是几号? 例如,星期日是第一天,星期一:第二天..依此类推 然后,如果输入的内容类似于今天的日期。 例 输出可能是6(因为它是星期五) 问题答案: 使用: 从文档中: 以整数返回星期几,其中星期一为0,星期日为6。

  • 我创建了新的SimpleDataFormat对象,它将给定字符串解析为日期对象。日期格式如下: 我将此日期设置为日历实例,如下所示: 现在我从这个日历中获取一周中的哪一天。它给出了错误的值。 它给出的输出是7,即周六,但预期值是5,即周四。有什么问题吗?

  • 问题内容: 有人可以向我展示一段解析此日期的Java代码: 2009-08-05 进入此GMT日期: 2009/217:00:00 ==== 到目前为止,我有: 但它不起作用 问题答案: 这是您要寻找的格式:

  • 问题内容: 如何获得当前一周的星期一和星期五的日期? 我有以下代码,但是如果当前日期是星期日或星期六,则它将失败。 问题答案: 这些strtotime输入效果很好: 您需要做的就是将逻辑包装在一些if语句中。