第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Boot - 如何為“java.time.LocalDateTime”

Spring Boot - 如何為“java.time.LocalDateTime”

梵蒂岡之花 2021-06-15 17:08:11
我用 Spring Boot 開發(fā)了一個休息服務(wù)。我想以毫秒為單位返回用戶生日的 json 響應(yīng)。如何將java.time.LocalDateTime對象序列化為毫秒?我的模型類:    @Entity(name = "users")    public class User implements Serializable {        @Id        @GeneratedValue        @Column(name = "user_id")        private Long id;        @Column(name = "first_name")        private String firstName;        @Column(name = "last_name")        private String lastName;        @Column(name = "date_of_birth")        private LocalDateTime dateOfBirth;   . . .    }目前的回應(yīng):{ . . ."dateOfBirth":[2018,7,25,7,0],. . . }首選回復(fù):{ . . ."dateOfBirth": 1532786354419,. . . }
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊

用 @JsonSerialize(using = CustomSerializer.class)


@Entity(name = "users")

public class User implements Serializable {


    @Id

    @GeneratedValue

    @Column(name = "user_id")

    private Long id;


    @Column(name = "first_name")

    private String firstName;


    @Column(name = "last_name")

    private String lastName;



    @JsonSerialize(using = CustomSerializer.class)

    @Column(name = "date_of_birth")

    private LocalDateTime dateOfBirth;  


    . . .


}

自定義序列化程序類:


public class CustomSerializer extends JsonSerializer<LocalDateTime> {

@Override

public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {

    //add your custom date parser

    gen.writeString(value.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli()+"");

}

}


查看完整回答
反對 回復(fù) 2021-06-17
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗 獲得超6個贊

如果您不想裝飾所有對象,@JsonSerialize可以將對象映射器配置為始終返回 long for LocalDateTime.


@Bean

public ObjectMapper objectMapper() {

    ObjectMapper objectMapper = new ObjectMapper();

    JavaTimeModule javaTimeModule = new JavaTimeModule();

    javaTimeModule.addSerializer(LocalDateTime.class, new LocalDateSerializer());

    javaTimeModule.addDeserializer(LocalDateTime.class, new LocalDateDeserializer());

    objectMapper.registerModule(javaTimeModule);

    return objectMapper;

}

和 de- 和序列化器。


public class LocalDateSerializer extends JsonSerializer<LocalDateTime> {

    @Override

    public void serialize(LocalDateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException {

        gen.writeString(String.valueOf(value.atZone(ZoneId.systemDefault()).toEpochSecond()));

    }

}


public class LocalDateDeserializer extends JsonDeserializer<LocalDateTime> {

    @Override

    public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {

        return LocalDateTime.ofInstant(Instant.ofEpochSecond(Long.parseLong(p.getValueAsString())), ZoneId.systemDefault());

    }

}

在您的示例中,您使用的出生日期可能是LocalDate.


查看完整回答
反對 回復(fù) 2021-06-17
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗 獲得超10個贊

為什么不按如下方式存儲日期屬性:


@Temporal(TemporalType.TIMESTAMP)

private Date date = new Date();

它以毫秒為單位給出日期。將其格式化為所需的輸出是應(yīng)用層的責(zé)任。不要在實體本身上做一些注釋。


查看完整回答
反對 回復(fù) 2021-06-17
  • 3 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號