Java - 以微秒获取 unix 纪元

Java - get unix epoch with microsecond

我正在努力以这种格式 (1586420933.453254) 获得微秒的 unix 时间纪元。我尝试了不同的 类.

- java.utils.Calendar
- java.time.Instant
- org.joda.time.DateTime

但我只得到这样的毫秒数 - 1586420933453

如何在 Java.

中获取像这样的 1586420933.453254 微秒的 unix 纪元

您可以使用标准 java 时间 Instant + 数字格式轻松完成。不过请记住,结果将采用 UTC 格式。这是当前时间的草稿:

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.time.Instant;


Instant datetime = Instant.now();

// Extract needed information: date time as seconds + fraction of that second
long secondsFromEpoch = datetime.getEpochSecond();
int nanoFromBeginningOfSecond = datetime.getNano();
double nanoAsFraction = datetime.getNano()/1e9;

// Now, let's put that as text
double epochSecondUTCPlusNano = secondsFromEpoch + nanoAsFraction;
NumberFormat format = DecimalFormat.getInstance();
format.setMinimumFractionDigits(6);
format.setMaximumFractionDigits(6);
format.setGroupingUsed(false);
System.out.print(format.format(epochSecondUTCPlusNano));