使用 Jackson JsonFormat 模式自定义日期字符串

2024-04-21

Summary

我正在尝试解析日期,例如25/Sep/17因此简单日期格式 https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html注释似乎是@JsonFormat(pattern = "dd/MMM/yy")。然而,当我尝试解析它时,我得到一个 InvalidFormatException ,其本质是(下面的示例后的完整异常):

Text '25/Sep/17' could not be parsed at index 3

我的日期格式字符串有什么问题?我看不出任何问题。看起来好像不太喜欢Sep配对MMM.

我正在使用 Amazon Corretto Java 版本“11.0.5”2019-10-15 LTS

重现示例

package example;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;

import java.time.LocalDate;

public class HelloMapperApp {
  private static final ObjectMapper MAPPER = new ObjectMapper();

  public static void main(String[] args) {
    MAPPER.registerModule(new JavaTimeModule());
    try {
      Example example = MAPPER.readValue("{ \"name\": \"example\", \"date\": \"25/Sep/17\"", Example.class);
      System.out.println("Deserialised is: " + example);
    } catch (Exception e) {
      throw new RuntimeException("Could not parse JSON: " + e);
    }
  }

  static class Example {
    @JsonProperty
    String name;
    @JsonProperty
    @JsonFormat(pattern = "dd/MMM/yy")
    LocalDate date;

    @Override
    public String toString() {
      return String.format("name: %s%ndate: %s", name, date);
    }
  }
}

完全例外

Exception in thread "main" java.lang.RuntimeException: Could not parse JSON: com.fasterxml.jackson.databind.exc.InvalidFormatException: 
Cannot deserialize value of type 
`java.time.LocalDate` from String "25/Sep/17": Failed to deserialize java.time.LocalDate: 
(java.time.format.DateTimeParseException) Text '25/Sep/17' could not be parsed at index 3
 at [Source: (String)"{ "name": "example", "date": "25/Sep/17""; line: 1, column: 30] (through reference chain: example.HelloMapperApp$Example["date"])
        at example.HelloMapperApp.main(HelloMapperApp.java:19)

对于格式化程序使用的区域设置,给定的输入可能具有错误的格式。Here https://stackoverflow.com/questions/52572726/datetimeparseexception-on-java-11-but-works-on-java-10是一个类似的帖子,有人遇到了问题Sep格式化程序期望的位置Sep. for Locale.CANADA.

Here https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations and here https://stackoverflow.com/questions/12463049/date-format-mapping-to-json-jackson您可以查看如何设置格式化程序的区域设置。例如。:

@JsonFormat(locale = "en", pattern = "dd/MMM/yy")

仅供参考:您不需要使用LLL几个月来作为文本。看看日期时间格式化程序 https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/format/DateTimeFormatter.html.

数字/文本:如果模式字母的数量为 3 或更多,请使用上面的文本规则。否则请使用上面的编号规则。

当你使用MMM,即三次M,格式化程序将隐式使用文本格式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Jackson JsonFormat 模式自定义日期字符串 的相关文章

  • 使用 proguard 混淆文件名

    我正在使用 proguard 和 Android Studio 混淆我的 apk 当我反编译我的apk时 我可以看到很多文件 例如aaa java aab java ETC 但我项目中的所有文件都有原始名称 有没有办法混淆我的项目的文件名
  • 如何在 Android 应用程序中隐藏 Flutterwave API 密钥

    我正在构建一个 Android 应用程序 目前正在将 Flutterwave 集成到我的应用程序中以进行支付 建议我永远不要将 Flutterwave API 密钥放在我的应用程序上 那么我该如何隐藏这些键呢 我正在使用 Retrofit
  • 通过Zuul上传大文件

    我在通过 zuul 上传大文件时遇到问题 我正在使用 apache commons 文件上传 https commons apache org proper commons fileupload https commons apache o
  • Java中Gson、JsonElement、String比较

    好吧 我想知道这可能非常简单和愚蠢 但在与这种情况作斗争一段时间后 我不知道发生了什么 我正在使用 Gson 来处理一些 JSON 元素 在我的代码中的某个位置 我将 JsonObject 的 JsonElements 之一作为字符串获取
  • java中如何知道一条sql语句是否执行了?

    我想知道这个删除语句是否真的删除了一些东西 下面的代码总是执行 else 是否删除了某些内容 执行此操作的正确方法是什么 public Deleter String pname String pword try PreparedStatem
  • 将类转换为 JSONObject

    我有好几堂这样的课 我想将类转换为 JSONObject 格式 import java io Serializable import com google gson annotations SerializedName public cla
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • JAXB - 忽略元素

    有什么方法可以忽略 Jaxb 解析中的元素吗 我有一个很大的 XML 文件 如果我可以忽略其中一个大而复杂的元素 那么它的解析速度可能会快很多 如果它根本无法验证元素内容并解析文档的其余部分 即使该元素不正确 那就更好了 例如 这应该只生成
  • 在光标所在行强制关闭!

    嘿 我正在尝试创建一个应用程序来查找存储在 SQlite 数据库中的 GPS 数据 但我面临一个问题 我构建了一个 DbAdapter 类来创建数据库 现在我尝试使用以下函数从另一个类获取所有数据上的光标 public Cursor fet
  • 无需递归即可对可观察结果进行分页 - RxJava

    我有一个非常标准的 API 分页问题 您可以通过一些简单的递归来处理 这是一个捏造的例子 public Observable
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • 如何将 JSON 数据从 Android 发送到 php url?

    我想将登录信息从我的应用程序发送到 php url 因为这我的应用程序将崩溃 任何人都可以帮助我解决这个问题 这是我的服务器登录方法 我想将数据发送到此登录方法 Method public method login Parameters 3
  • Tomcat 6 未从 WEB-INF/lib 加载 jar

    我正在尝试找出我的 tomcat 环境中的配置问题 我们的生产服务器正在运行 tomcat 安装并从共享 NFS 挂载读取战争 然而 当我尝试使用独立的盒子 及其配置 进行同样的战争时 我收到下面发布的错误 有趣的是 如果我将 WEB IN
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • titledBorder 标题中的图标

    您好 是否可以在 titledBorder 的标题中放置一个图标 例如以下代码 import java awt GridLayout import javax swing JFrame import javax swing JLabel i
  • 用于请求带有临时缓存的远程 Observable 的 RxJava 模式

    用例是这样的 我想暂时缓存最新发出的昂贵的Observable响应 但在它过期后 返回到昂贵的源Observable并再次缓存它 等等 一个非常基本的网络缓存场景 但我真的很难让它工作 private Observable
  • 在 Java 中通过 D-Bus MPRIS 访问 Clementine 实例

    我使用 Clementine 作为音乐播放器 它可以通过 D Bus 命令进行控制 在命令行上 使用 qdbus 我可以 Start Stop 暂停播放器 强制它跳过播放列表中的歌曲 检查播放列表的长度 检查播放列表中当前播放的曲目及其元数
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j
  • Spring 作为 JNDI 提供者?

    我想使用 Spring 作为 JNDI 提供程序 这意味着我想在 Spring 上下文中配置一个 bean 可以通过 JNDI 访问该 bean 这看起来像这样

随机推荐

  • 从事件处理程序执行主线程中的方法

    我有一个继承自 Queue 类的自定义 Queue 类 它有一个事件 ItemAdded 在此事件的事件处理程序中 我正在执行一个方法 但它正在主线程之外运行 尽管我希望它在主线程中 我不知道该怎么做 有什么建议吗 My custom cl
  • 使用拼凑将组合子图(拼凑?)注释为单个图

    我试图弄清楚如何注释组合拼凑物 就好像它们是单独的图一样 我有一个由三个组合图和另一个单个图组成的拼凑而成 最终的复合图是顶部的第一个拼凑物和底部的单独图 我没有问题得到我想要的布局 但是当我使用plot annotation 它为每个图提
  • sql server中的小数点四舍五入

    SQL Server 2008 是否可以向下舍入 例如 96855四舍五入为 968 IE 最多 0 96899 我想通过避免休息来舍入 0 96899 SELECT round 0 96855 3 1 gt 0 96800 对于 0 96
  • 经典的 asp/asp.net 网站 - global.asa 不工作

    最近我得到了一个用经典 ASP 编写的网站来配置和设置 尽管它似乎也有用 ASP NET 编写的页面 我目前遇到的问题是它似乎没有从 global asa 文件中获取设置 例如 Application ConnectionString 当我
  • Bash 颜色可变输出

    我有一个变量 比方说 x它的值是website com 我希望能够调用该变量并向其应用外壳颜色 如下所示 echo e 033 1 32m x 033 0m 问题不在于颜色 而在于脚本解释输出的方式 所以我得到的输出是 x 我需要输出显然是
  • 等待 Swift 中的异步操作完成

    我不知道如何处理这种情况 因为我对 iOS 开发和 Swift 非常陌生 我正在像这样执行数据获取 func application application UIApplication performFetchWithCompletionH
  • 升级到 AnonymousTraversalSource (Gremlin 3.3.5+ Node.js)

    我正在 Lambda Nodejs12 x 中编写代码 我想更新到未弃用的连接方式 const gremlin require gremlin const DriverRemoteConnection gremlin driver Driv
  • Android - 在 AsyncTask 中执行后

    我目前有一个asyncTask在预执行时启动一个加载栏 在后台向服务器发送一些内容 在执行后关闭对话框并启用一个按钮 但是 由于 doInBackground 返回 null 我的后执行未执行 我试图弄清楚我能做些什么来让 postExec
  • 如何使用 python_dateutil 1.5 'parse' 函数来处理 unicode?

    我需要 Python dateutil 1 5parse http labix org python dateutil head a23e8ae0a661d77b89dfb3476f85b26f0b30349c使用 Unicode 月份名称
  • 使用 Java 将包含 XML 的字符串添加到 SOAPElement

    我必须将 Excel 文件中的数据作为 XML 发送到 Web 服务 表中的数据看起来有点像这样 请参阅此处的表格示例 https i stack imgur com NEOTi png 第一行始终包含该列数据的 XML 标记 大多数数据列
  • 从intellij-idea将代码样式格式化设置导入到eclipse中

    我最近实现了将 maven Check 样式插入到我的项目中 并更改了 intellij 我使用的 中的所有格式化程序设置 以符合此样式指南 他们现在这样做 不过 我需要为 eclipse 生成一个设置 xml 文件 以便我的同事可以自动格
  • ld:警告:__DATA/__objc_imageinfo__DATA 节的大小意外地大

    有谁知道这个警告是什么意思 接下来是错误 Command Developer Platforms iPhoneSimulator platform Developer usr bin llvm gcc 4 2 failed with exi
  • 如何在嵌入式Linux中高效地在VFAT分区上创建大文件

    我正在尝试在嵌入式 Linux 盒子中使用 dd 命令在 VFAT 分区上创建一个大的空文件 dd if dev zero of mnt flash file bs 1M count 1 seek 1023 目的是跳过前 1023 个块并在
  • Nginx no-www 到 www 以及 www 到 no-www

    我在用按照教程在 Rackspace 云上安装 nginx http www howtoforge com running phpmyadmin on nginx lemp on debian squeeze ubuntu 11 04并在网
  • 无法使用 Leiningen 构建 jar

    我正在尝试使用 Intellij 的 Cursive 中的 Leiningen 插件从我的基本 Clojure 项目中制作一个独立的 jar 为了创建项目 我刚刚创建了 project clj 文件 将其打开 Cursive 提出将其导入为
  • Heroku SSL 与 Route53

    我的 SSL 证书已全部设置完毕并准备好在 Heroku 上运行 我按照这里的说明进行操作https devcenter heroku com articles route 53 https devcenter heroku com art
  • Python 子进程调用不能采用 grep [重复]

    这个问题在这里已经有答案了 Python 子进程调用应该按原样作为命令运行 但如果其中有管道 它就会抱怨 这是我的代码 usr bin python import sys import subprocess import time serv
  • 如何在预构建步骤中转义美元符号

    我正在与 Visual Studio 进行斗争 以在预构建步骤中正确转义美元符号 目标是提供一个变量名作为文字 VS 不应该尝试处理变量名 The 文档 https msdn microsoft com en us library bb38
  • Angular 子路由不起作用并将我重定向到同一页面

    我尝试过改变我的route到目前为止我没有发现任何问题 但是 如果您发现任何缺陷 请告诉我 我也会尝试查找任何类型错误并仔细检查我的组件 到目前为止我还没有找到 但请再次告诉我 我尝试输入我的路线 URL 它可以工作 但显示的是相同的页面
  • 使用 Jackson JsonFormat 模式自定义日期字符串

    Summary 我正在尝试解析日期 例如25 Sep 17因此简单日期格式 https docs oracle com javase 8 docs api java text SimpleDateFormat html注释似乎是 JsonF