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));
我正在努力以这种格式 (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));