如何转换Spring Boot的日期

声波
@JsonSerialize(using = DateSerializer.class)
private long date;

如何自定义时间格式,例如yyyy-MM-dd HH:mm:ss,yyyy-MM-dd

Yogesh Prajapati:

我建议使用@JsonSerialize将您的长毫秒转换为所需的日期格式。

这是示例。

Pojo课

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import lombok.Data;
import org.springframework.data.util.Pair;

/**
 * Created by yprajapati on 19/09/2019.
 */

public @Data
class Test {

    private long date;

    @JsonSerialize(using = DateSerializerCustom.class)
    private Pair formattedDate;

    public Pair getFormattedDate() {
        return Pair.of(date, "yyyy-MM-dd HH:mm"); // Here you can add your desired date format
    }
}

日期序列化器

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.springframework.data.util.Pair;

import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

/**
 * Created by yprajapati on 19/09/2019.
 */

public class DateSerializerCustom extends JsonSerializer<Pair<Long, String>> {

    public void serialize(Pair<Long, String> pair, JsonGenerator jsonGen, SerializerProvider serProv) throws IOException {
        DateFormat sdf = new SimpleDateFormat(pair.getSecond());
        String formattedDate = sdf.format(pair.getFirst());
        jsonGen.writeString(formattedDate);
    }
}

主应用

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * Created by yprajapati on 19/09/2019.
 */

public class MainApp {
    public static void main(String[] args) throws JsonProcessingException {
        Test test = new Test();
        test.setDate(1568866827596L);

        System.out.println(new ObjectMapper().writeValueAsString(test));
    }
}

输出量

{"date":1568866827596,"formattedDate":"2019-09-19 09:50"}

注意:这里我添加了额外的字段。对其进行标记,@Transient因为它不会成为持久性的一部分。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章