淘先锋技术网

首页 1 2 3 4 5 6 7

正文

  日期格式化问题分为接收日期参数和返回日期类型字段。

接收日期参数格式化

配置接收时间戳

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addFormatter(new Formatter<Date>() {
            @Override
            public Date parse(String date, Locale locale) {
                return new Date(Long.parseLong(date));
            }

            @Override
            public String print(Date date, Locale locale) {
                return Long.valueOf(date.getTime()).toString();
            }
        });
    }
}

接收日期字符串方法类似上面,此处略。

只针对方法配置接收日期字符串

// 方法1:在参数上加入该注解
public void test(@DateTimeFormat(pattern = "yyyy-MM-dd")Date date){
}
// 方法2:在接收类字段加入该注解
public void addUser(User user){
}
@Data
public class User{
    private String name;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthday;
}

返回日期类型字段

配置返回时间戳

spring
  jackson:
    serialization:
      write-dates-as-timestamps: true

全局配置返回字符串

spring:
    jackson:
        date-format: yyyy-MM-dd HH:mm:ss
        time-zone=GMT+

在指定字段加入注解@JsonSerialize(using = xxxx.class)或@JsonFormat(pattern="yyyy/MM/dd HH:mm:ss",timezone = "GMT+8")