将1904年以来的纳秒转换为有效的Java日期

我有一个数字,它表示自1904年1月1日上午12:00(世界标准时间)以来的纳秒数。我希望实例化一个java.util.Date代表该日期的对象。我应该如何进行?

回答:

首先,您需要将代表 纳秒数字 转换为 毫秒

然后,对于给定的日期字符串,获取自unix时间 Epoch 以来的总毫秒数,然后向其添加更早转换为毫秒的数字。

这是工作代码:

String target = "1904/01/01 12:00 AM";  // Your given date string

long nanoseconds = ...; // nanoseconds since target time that you want to convert to java.util.Date

long millis = TimeUnit.MILLISECONDS.convert(nanoseconds, TimeUnit.NANOSECONDS);

DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd hh:mm aaa");

formatter.setTimeZone(TimeZone.getTimeZone("UTC"));

Date date = formatter.parse(target);

long newTimeInmillis = date.getTime() + millis;

Date date2 = new Date(newTimeInmillis);

System.out.println(date2);

添加一个import java.util.concurrent.TimeUnit;

以上是 将1904年以来的纳秒转换为有效的Java日期 的全部内容, 来源链接: utcz.com/qa/419629.html

回到顶部