将日期转换为字符串int64格式

时间:2017-11-30 04:21:07

标签: java json string timestamp

我需要调用一个有效负载的API

JSON
{
timeAsString  :String
}

在文件

中给出
timeAsString  (int64 (https://developers.google.com/discovery/v1/type-format) format) Timestamp when abc is happen

为此我将日期转换为毫秒并发送为字符串

new Date().getTime().toString();

但它给我错误作为无效参数 请告诉我们我错在哪里。我们如何以字符串int64格式发送日期?

1 个答案:

答案 0 :(得分:2)

java.time

首先,请考虑使用现代Java日期和时间API java.time。您正在使用的Date课程已过时且设计不佳。现代API可以更好地使用。

    String timeAsString = String.valueOf(Instant.now().toEpochMilli());

这只是给了:

1512197790622

另一个选项是String.valueOf(System.currentTimeMillis())

Q&安培; A

如何学习使用java.time您可以从the Oracle tutorial开始和/或在网上查找其他教程和其他资源。

我可以在Java版本中使用现代API吗?

如果至少使用Java 6 ,则可以。

  • 在Java 8及更高版本中,内置了新的API。
  • 在Java 6和7中获取the ThreeTen Backport,新类的backport({3}}的ThreeTen)。
  • 在Android上,使用Android版的ThreeTen Backport。它被称为ThreeTenABP,我认为在JSR 310中有一个很好的解释。

我的代码出了什么问题? Date.getTime()返回毫秒作为基元long。在Java中,您无法在基元上调用任何方法。在我的Eclipse中,我收到错误消息“无法在原始类型long上调用toString()”。一种解决方案是像我在上面的代码中那样使用String.valueOf()