gpt4 book ai didi

java - 使用 Protocol Buffer 序列化日期

转载 作者:行者123 更新时间:2023-12-02 12:58:49 25 4
gpt4 key购买 nike

经过一番搜索,建议使用 int64 纪元。

这一切都很好,但是当与我的模型交互时,我想与实际的 LocalDate 对象交互,那么处理这个问题的策略是什么?

我能想到的两种策略是:

  • 将反序列化模型转换为另一个不同的模型。这会创建一个额外的对象,我希望避免这种情况。
  • 编辑生成的模型。我找不到任何相关文档,因此可能风险很大

这里的常见做法是什么?

最佳答案

我为所有日期/时间创建了一个通用解决方案:

message Timestamp {
int64 seconds = 1;
int32 nanos = 2;
}

使用以下转换器:

public static Timestamp fromLocalDate(LocalDate localDate) {
Instant instant = localDate.atStartOfDay().toInstant(ZoneOffset.UTC);
return Timestamp.newBuilder()
.setSeconds(instant.getEpochSecond())
.setNanos(instant.getNano())
.build();
}

public static LocalDate toLocalDate(Timestamp timestamp) {
return LocalDateTime.ofInstant(Instant.ofEpochSecond(timestamp.getSeconds(), timestamp.getNanos()), ZoneId.of("UTC"))
.toLocalDate();
}

关于java - 使用 Protocol Buffer 序列化日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com