如何将LocalDateTime转换为com.google.protobuf.Timestamp?
2022-09-04 22:41:44
我有一个 LocalDateTime 的实例,它是从存储库层获取的,我需要将其转换为时间戳(协议缓冲区)实例。
我习惯于以下转换方法:
LocalDateTime localDateTime = LocalDateTime.now();//this can be any date
Instant instant = localDateTime.toInstant(ZoneOffset.UTC);
Timestamp timestamp = Timestamp.newBuilder()
.setSeconds(instant.getEpochSecond())
.setNanos(instant.getNano())
.build();
此处是否使用了 ZoneOffset,将 localDateTime 转换为 Instant 的实例,对吗?
我使用了 UTC 偏移量,因为 Timestamp 类中“秒”属性的注释显示以下内容:
表示自 Unix 纪元 1970-01-01T00:00:00Z 以来的 UTC 时间秒数。必须从 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z(含)
我是否使用了正确的区域偏移,我的转换方法是否正确?