使用 Jackson 序列化 Date2025年3月17日 | 阅读11分钟 在 Java 中,Date 是最重要的数据类型之一。当我们使用 REST API 时,我们需要序列化 Date。在本节中,我们将了解如何使用 Jackson 序列化 Date。我们将了解如何序列化以下类型的日期
让我们一个一个地来理解它们 将 Date 序列化为时间戳为了序列化 "java.util.Date",我们借助 Event 类。我们首先使用 SimpleDateFormat 类创建一个日期。之后,我们使用 date 字段创建一个 Event 的实例。现在,我们使用 ObjectMapper 类序列化 Event 实例。 让我们实现上述理论的代码 SerializeDateToTimestamp.java 输出 ![]() 将 Date 序列化为 ISO-86o1就像将 Date 序列化为时间戳一样,我们也可以使用 ObjectMapper 类将 Date 序列化为 ISO-86o1。我们使用 ObjectMapper 类的 setDateFormat() 方法将 Date 序列化为 ISO-86o1。 让我们看一个例子来了解如何使用 ObjectMapper 类进行序列化 SerializeDateToISO.java 输出 ![]() 配置 ObjectMapper DateFormat之前的所有 Date 序列化方法仍然缺乏选择表示 java.util.Date 实例的确切格式的完整灵活性。现在,我们执行一些配置,允许我们设置表示日期的格式。 让我们看一个例子来配置 ObjectMapper,允许我们设置 Date 格式。 SerializeDateWithConfiguration.java 输出 ![]() 使用 @JsonFormat 序列化 Date我们还可以使用 @JsonFormat 注解序列化 Date。我们使用注解来控制各个类上的 Date 格式。因此,当我们不想全局控制日期格式时,我们使用注解。 让我们看一个例子来了解如何使用注解来控制 Date 格式。 SerializeDateWithJsonFormat.java 输出 ![]() 使用自定义 Date 序列化器序列化 Date这是序列化 Date 字段的另一种方式。我们定义自定义的 date 序列化器,然后将其与 @JsonSerialize 一起使用。 让我们首先定义 Date 序列化器,然后我们举一个例子,在其中使用我们的自定义 date 序列化器。 CustomDateSerializer.java 输出 ![]() 使用 Jackson 序列化 Joda-Time"java.util.Date" 不是唯一提供 Date 实例的类。日期也可以由其他类表示,例如 Joda-Time 等。DateTime 是 Joda-Time 库中最常见的实现之一。 为了使用 Joda-Time,我们在 POM.xml 文件中添加以下依赖项 要序列化 Joda-Time,我们只需将 JodaModule 注册到 ObjectMapper 类 SerializeJodaTimeExample.java 输出 ![]() 使用自定义序列化器序列化 Joda-Time就像 "java.util.Date" 一样,我们也可以使用 DateTime 序列化器序列化 Joda-Time。让我们首先创建自定义 DateTime 序列化器,然后我们将使用它来序列化 Joda-DateTime。 CustomDateTimeSerializer.java SerializeJodaTimeWithSerializer.java 输出 ![]() 使用 Jackson 序列化 Java 8 Date就像 java.util.Date 和 Joda-DateTime 一样,我们也可以使用 Jackson 序列化 Java 8 Date。我们将使用 LocalDateTime 进行序列化,为此,我们在 POM.xml 文件中添加以下依赖项。 为了序列化 Java 8 Date,我们将 JavaTimeModule 注册到 ObjectMapper 类。 让我们看一个例子来了解如何使用 Jackson 完成 Java 8 Date 的序列化。 SerializeJava8DateExample.java 输出 ![]() 使用自定义序列化器序列化 Java 8 Date我们还可以使用自定义 LocalDateTime 序列化器序列化 Java 8 Date。就像 java.util.Date 和 Joda-DateTime 一样,我们创建一个自定义序列化器,然后我们在我们的代码中使用它来序列化 Java 中的 LocalDateTime。 CustomLocalDateTimeSerializer.java SerializeJava8DateWithCustomSerializer.java 输出 ![]() 下一个主题Jackson JSON Views |
我们请求您订阅我们的新闻通讯以获取最新更新。