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

Java 如何将long(currentTimeInMillis)转换为UTC时间戳?,java,scala,time,utc,Java,Scala,Time,Utc,我的客户向我发送了Long,可以认为 scala> System.currentTimeMillis res3: Long = 1441056836609 scala> 如何将其转换为UTC时间戳 在服务器上,我们使用的是Java8 Date dateFromTime = new Date(timeInMillis); 这将得到一个日期对象,然后您可以使用 DateFormat dateFormatter = SimpleDateFormat(/*UTC Format Str

我的客户向我发送了
Long
,可以认为

scala> System.currentTimeMillis
res3: Long = 1441056836609

scala> 
如何将其转换为UTC时间戳

在服务器上,我们使用的是
Java8

Date dateFromTime = new Date(timeInMillis);
这将得到一个日期对象,然后您可以使用

DateFormat dateFormatter = SimpleDateFormat(/*UTC Format String*/, Locale./*Your Locale here*/);
System.out.printf("%s\n", dateFormatter.format(dateFromTime));

您可以使用
Instant
类方法

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

Instant.ofEpochMilli(<yourmillis>).atOffset(ZoneOffset.UTC).toString();
导入java.time.Instant;
导入java.time.ZoneOffset;
Instant.ofEpochMilli().atOffset(ZoneOffset.UTC).toString();

您的示例日期是
“2015-08-31T21:33:56.609Z”

因为您使用的是scala,我建议您使用scala方式,这是一个非常好的库

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

这就是我正在做的

我正在使用和做

DateTimeZone.setDefault(DateTimeZone.UTC);
DateTime.now.toString
客户机上
我将其视为

Wed, 02 Sep 2015 20:57:34 GMT
服务器上
我认为

2015-09-02T20:24:43.594Z

p.S.不要比较值,它们的复制方式不同,格式正是我想分享的

因为OP明确表示它们使用的是Java 8为什么推荐一个绝对古老的API?如果您认为有更好的API,您可以提出自己的解决方案。@Boristeider:我最后听说的是Date类(和Calendar类)并没有被弃用。在我看来,有些问题在早期的类中得到了同样优雅的解决…如果你知道它们的局限性,那么就真的没有问题了。可能是重复的