首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中初始化Google协议缓冲区时间戳?

如何在Java中初始化Google协议缓冲区时间戳?
EN

Stack Overflow用户
提问于 2016-04-19 07:47:07
回答 2查看 27.3K关注 0票数 16

Google缓冲器(3.0.0-beta2 2)提供著名的时间戳

文档使用()描述了Java中的System.currentTimeMillis初始化,如下所示:

代码语言:javascript
运行
复制
long millis = System.currentTimeMillis();
Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000)
    .setNanos((int) ((millis % 1000) * 1000000)).build();

最近的Java 8中是否有的替代方式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-19 07:47:07

Java 8开始,有了新的Date/Time-API,这使得它对使用java.time.Instant的读者更有吸引力。

代码语言:javascript
运行
复制
Instant time = Instant.now();
Timestamp timestamp = Timestamp.newBuilder().setSeconds(time.getEpochSecond())
    .setNanos(time.getNano()).build();

在精度方面,结果应该是相同的。

票数 30
EN

Stack Overflow用户

发布于 2018-09-09 20:37:26

现在,您可以使用:

代码语言:javascript
运行
复制
import static com.google.protobuf.util.Timestamps.fromMillis;
import static java.lang.System.currentTimeMillis;
import com.google.protobuf.Timestamp;

...

Timestamp timestamp = fromMillis(currentTimeMillis());

见下列文件:

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36711835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档