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

Java.time - 解析一个月的名称不起作用 [重复]

越骏俊
2023-03-14

我必须在Java中处理从外部API接收到的时间戳。日期时间格式的示例如下所示:

"May 9, 2018 5:32:31 PM CEST"

在DateTimeFormatter#Predefined Formatters查找文档中的信息后,我发现此格式未作为预定义格式包含。因此,我继续使用DateTimeFormatter#Patterns为格式化和解析定义自己的DateTimeFormatter,并得到以下错误消息:

Exception in thread "main" java.time.format.DateTimeParseException: Text 'May 9, 2018 5:32:31 PM CEST' could not be parsed at index 0

所以我去了“Java教程”,发现他们解析月份名称的示例在我的程序中不起作用。。。

来自Java教程解析和格式化:

String input = "Mar 23 1994";
    try {
        DateTimeFormatter formatter =
                          DateTimeFormatter.ofPattern("MMM d yyyy");
        LocalDate date = LocalDate.parse(input, formatter);
        System.out.printf("%s%n", date);
    }
    catch (DateTimeParseException exc) {
        System.out.printf("%s is not parsable!%n", input);
        throw exc;      // Rethrow the exception.
    }

这抛出了相同的错误消息,因为当到达月份名称时解析失败……所以我的问题是如何使用java解析上面的datetimeString。时间包。

这个问题的答案在我的机器上运行正常。(因此,MMM模式有效,但在从String解析时无效)

谢谢你的帮助!

共有1个答案

井唯
2023-03-14

日期 字符串将使用默认区域设置进行解析(也许是区域设置?)。

如果文本不是相应的语言,您必须指定正确的Locale,例如:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMM d yyyy").withLocale(Locale.ENGLISH);
 类似资料:
  • 我正在尝试使用Spring Cloud的Open Faign调用另一个服务,但我一直得到以下回应: 这是我的密码: 我已将Faign配置为使用OkHttp客户端,但我不确定它是否对错误负责:

  • 我的集群运行的是KubernetesV1.18.2(calico for networking),与KubesPray一起安装。我可以从外部访问我的服务,但当它们需要相互连接时,它们就会失败(例如,当UI试图连接到数据库时)。 下面提供了以下命令的一些输出:https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resol

  • 我得到了(超过)两个Api POSTendpoint。每一个都需要一个json作为参数。但是当我在两个endpoint参数类中使用相同的类名负载时,Swagger就不起作用了。当我改变其中的一个,例如从有效载荷到有效载荷1时,它就不起作用了。当然,我在包装类中设置了正确的名称空间,以便它找到负载。但我希望每次都使用相同的名称“有效载荷”。如何使用相同的类名负载?在这两种情况下,我都可以保留json

  • 我们有一个库,用户可以以多种格式传入日期。它们遵循ISO,但有时会缩写。 或者更好的是,是否有某种方法可以解析一个字符串,并且如果字符串对任何日期[时间]都有意义,它会尝试一切可能的方法并返回一个时态对象?

  • 我正在解析URL中的数据,下面提到了这个错误。 原始数据从服务器完美显示。无法使用Json解析拆分数据。 请帮我解决这个错误 编辑:1 来自URL的Json响应 错误: 主要活动。JAVA

  • 我是JSTL新手,由于某种原因,我无法让测试线工作。以下是我使用的简化代码: 当我使用 ${hasChild} 它在屏幕上打印真实,但在测试线上不会发出嗡嗡声,我不知道为什么。有人能帮忙吗?