簡體   English   中英

如何轉換 spring 引導長到日期

[英]How to convert spring boot long to date

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

如何自定義時間格式 ex yyyy-MM-dd HH:mm:ss, yyyy-MM-dd

我建議使用 @JsonSerialize 將您的長毫秒轉換為所需的日期格式。

這是示例。

寶卓 Class

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));
    }
}

Output

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

注意:這里我添加了額外的字段。 將其標記為@Transient ,因為它不會成為持久化的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM