`
三个诸葛亮
  • 浏览: 17634 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java8中java.time.LocalDateTime的json格式化

    博客分类:
  • Java
阅读更多

示例项目为spring boot构建

 

步骤1:在gradle或者maven中添加 jackson-datatype-jsr310 依赖库

 

例如gradle: 

compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310'

 

步骤2:

在实体类属性上加注解 @JsonFormat

com.fasterxml.jackson.annotation.JsonFormat;

 

到此为止已经可以将LocalDate、LocalTime、LocalDateTime等正确格式化并输出到view,但是如果要让Spring MVC接受到字符串自动转化为LocalDateTime类型的话还需以下一步操作。

 

步骤3:注册格式化日期的Bean

@Configuration
public class LocalDateTimeFormatConfig {

    @Bean
    public Formatter<LocalDate> localDateFormatter() {
        return new Formatter<LocalDate>() {
            @Override
            public String print(LocalDate object, Locale locale) {
                return object.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
            }

            @Override
            public LocalDate parse(String text, Locale locale) throws ParseException {
                return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
            }
        };
    }

    @Bean
    public Formatter<LocalDateTime> localDateTimeFormatter() {
        return new Formatter<LocalDateTime>() {
            @Override
            public String print(LocalDateTime object, Locale locale) {
                return object.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
            }

            @Override
            public LocalDateTime parse(String text, Locale locale) throws ParseException {
                return LocalDateTime.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
            }
        };
    }

    @Bean
    public Formatter<LocalTime> localTimeFormatter() {
        return new Formatter<LocalTime>() {
            @Override
            public String print(LocalTime object, Locale locale) {
                return object.format(DateTimeFormatter.ofPattern("HH:mm:ss"));
            }

            @Override
            public LocalTime parse(String text, Locale locale) throws ParseException {
                return LocalTime.parse(text, DateTimeFormatter.ofPattern("HH:mm:ss"));
            }
        };
    }

}

 

 

这里用的是java config的写法,使用xml注册也是可以的。

 

分享到:
评论

相关推荐

    解决SpringMVC 返回Java8 时间JSON数据的格式化问题处理

    本文将详细介绍两种解决Spring MVC返回Java 8日期时间JSON数据格式化问题的方法。 **解决方法一:使用Jackson-datatype-jsr310库** 首先,我们需要引入`jackson-datatype-jsr310`这个依赖库。在Maven项目的`pom....

    java-util大全.rar

    `SimpleDateFormat`用于格式化和解析日期,而Java 8引入的`LocalDate`, `LocalTime`, `LocalDateTime`等类提供了更强大、更易用的时间日期API。 3. **DES加解密**: DES(Data Encryption Standard)是一种对称...

    将c#的DateTime类转成java

    3. **字符串转换**:C#使用`ToString`方法,Java可以使用`DateTimeFormatter`进行格式化输出。 4. **序列化和反序列化**:如果涉及序列化,C#通常使用`BinaryFormatter`或JSON,而Java则有多种选择,如`...

    java常用工具类

    此外,`java.text.SimpleDateFormat`用于格式化和解析日期字符串。如果需要更高级的功能,可以使用`java.time.format.DateTimeFormatter`。 3. HTTP工具类: 发送HTTP请求和处理响应通常依赖于第三方库,如Apache ...

    java获取时间大全

    - `ZoneId`:Java 8中的时区ID,提供了更精确的时区处理。 6. **日期时间流(Stream)操作:** - Java 8引入的流API可以与日期时间类结合,用于日期范围遍历,例如创建一个日期的流水线。 7. **日期时间的序列化...

    graphql-java-datetime:GraphQL ISO日期是一组与RFC 3339兼容的datetime标量类型,可与graphql-java一起使用

    graphql-java-datetime· GraphQL ISO Date是与...java.util.Date , java.time.LocalDate , java.time.LocalDateTime 格式 JSON字串 yyyy-MM-dd'T'HH:MM:ss.SSS'Z' 2017-07-09T13:14:45.947Z yyyy-MM-dd'T'H

    將JAVA數據類型轉換Json對象是日期類的處理

    在Java中,日期类主要有`java.util.Date`、`java.time.LocalDate`、`java.time.LocalDateTime`等。转换这些日期到JSON时,我们需要确保日期格式正确无误,否则可能会导致解析错误或者丢失时间信息。一种常见的做法是...

    java的时间的资料

    9. **日期和时间的序列化和反序列化**:`java.time`中的类可以方便地与JSON和其他数据交换格式进行互转,比如通过`java.time.format.DateTimeFormatter`配合`String`进行转换。 总结来说,Java提供了多种处理日期和...

    springboot2.x 全局格式化

    总结,通过`JacksonConfig.java`和`WebMvcConfig.java`,我们可以定制Spring Boot 2.x的JSON序列化策略,实现全局时间格式化以及高精度数字的字符串表示。同时,`WebMvcConfig`还可以用于调整MVC层的其他配置,以...

    java 时间的设置与获取

    - 在JSON序列化中,通常会用到`ISO_8601`标准格式,Java 8的新API支持直接序列化为这种格式。 综上,Java提供了丰富的日期时间处理API,无论是简单的获取当前时间,还是复杂的时区转换、时间计算,都可以轻松应对...

    java工具类

    `java.time`包(自Java 8引入)提供了更友好的`LocalDate`、`LocalTime`和`LocalDateTime`等类,而`java.text.SimpleDateFormat`用于格式化和解析日期。此外,Apache Commons Lang和Google的Guava库也提供了额外的...

    总结java的算法之3

    Java中的`java.time`包提供了丰富的API,如`LocalDateTime`, `ZonedDateTime`, `Duration`等,用于处理日期、时间的计算,如获取两个日期之间的差值,或者进行时间的加减操作。 2. **小技巧**:`.java` 文件可能...

    java 时间转换(转载)

    例如,`LocalDateTime.now()`可以获取当前日期和时间,`DateTimeFormatter`用于格式化和解析这些新类。 4. **时间转换方法**: - `Date`到`String`:使用`SimpleDateFormat`的`format`方法。 - `String`到`Date`...

    java进行时间的转换

    - Java 8的`java.time`包默认支持ISO 8601标准,如`yyyy-MM-dd'T'HH:mm:ss.SSSXXX`格式,方便与网络通信或JSON序列化/反序列化配合使用。 5. 日期和时间的计算: - 使用`java.time`包中的`plusDays()`, `...

    Java笔记word.docx

    在实体类中定义时间字段时,可以使用`@JsonFormat`注解来指定日期格式化规则。 **示例**: ```java @Data public class User { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date...

    基于JAVA的日程提醒簿.7z

    Java 8引入了新的日期和时间API(java.time包),包括LocalDate、LocalTime、LocalDateTime等类,这些类提供了更加易用和强大的日期时间操作功能,用于创建、比较和计算日期及时间。 五、数据持久化 为了保存用户的...

    基于java的日程提醒簿.zip

    - **java.time**:Java 8引入了新的日期时间API,用于处理日期、时间、时区等,如LocalDateTime、ZonedDateTime和Duration等类。 5. **数据库集成** - **JDBC**:Java数据库连接(JDBC)接口用于与数据库交互,如...

    详解Java关于时间格式化的方法

    在Java编程中,时间格式化是一个常见的需求,特别是在处理与日期和时间相关的数据时,如从数据库中获取信息或向API接口返回数据。本文将详细讲解Java中如何进行时间格式化,以及在SpringBoot框架中如何高效地实现这...

    java项目中公共模块内容详细

    例如,`SimpleDateFormat`用于日期的格式化,`LocalDate`和`LocalDateTime`则提供了更加现代和易用的日期时间处理方式。 3. **字符串转换**:字符串是Java中最常用的类型之一,转换操作包括数字与字符串之间的转换...

Global site tag (gtag.js) - Google Analytics