如何将 long (currentTimeInMillis) 转换为 UTC 时间戳?

How to I convert long (currentTimeInMillis) to UTC timestamp?

我的客户发给我 Long 可以认为是

scala> System.currentTimeMillis
res3: Long = 1441056836609

scala> 

如何将其转换为 UTC 时间戳?

在服务器上,我们正在使用 Java 8

Date dateFromTime = new Date(timeInMillis);

这将获得一个 Date 对象,然后您可以使用

以正确的 UTC 格式吐出该对象
DateFormat dateFormatter = SimpleDateFormat(/*UTC Format String*/, Locale./*Your Locale here*/);
System.out.printf("%s\n", dateFormatter.format(dateFromTime));

您可以使用 Instant class 方法。

import java.time.Instant;
import java.time.ZoneOffset;

Instant.ofEpochMilli(<yourmillis>).atOffset(ZoneOffset.UTC).toString();

您的示例日期为 "2015-08-31T21:33:56.609Z"

既然你用的是scala,我建议你用scala的方式,nscala-time是一个很好的库

scala> import com.github.nscala_time.time.Imports._
import com.github.nscala_time.time.Imports._

scala> DateTimeZone.setDefault(DateTimeZone.UTC)

scala> new DateTime(1441056836609L)
res1: org.joda.time.DateTime = 2015-08-31T21:33:56.609Z

这就是我正在做的

我正在使用 Joda-Time 并且正在做

DateTimeZone.setDefault(DateTimeZone.UTC);
DateTime.now.toString

client 我认为是

Wed, 02 Sep 2015 20:57:34 GMT

server 我认为是

2015-09-02T20:24:43.594Z

P.S.不要比较值,抄的不一样,格式就是我要分享的