Java - получить unix эпоху с микросекундами - PullRequest
0 голосов
/ 09 апреля 2020

Я изо всех сил пытаюсь получить эпоху unix с микросекундами в этом формате (1586420933.453254). Я пробовал разные классы.

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

Но я получаю только миллисекунды, как это - 1586420933453

Как мне получить unix эпоху с микросекундами, как это 1586420933.453254 в Java.

1 Ответ

3 голосов
/ 09 апреля 2020

Вы можете легко сделать это, используя стандартный java Мгновенный + формат числа. Имейте в виду, что результат будет в UT C, хотя. Вот черновик с текущим временем:

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));
...