Класс Instant
Класс Instant представляет собой момент времени
на временной шкале в UTC. Он хранит количество
секунд и наносекунд, прошедших с начала эпохи
Unix (1 января 1970 года, 00:00:00 UTC). Класс
не хранит информацию о часовом поясе, поэтому
идеально подходит для хранения меток времени.
Объекты класса Instant неизменяемы, а все
методы, изменяющие состояние, возвращают новый
объект.
Синтаксис
Instant instant = Instant.now();
Instant instant = Instant.ofEpochSecond(seconds);
Instant instant = Instant.ofEpochMilli(millis);
Instant instant = Instant.parse("2024-01-01T00:00:00Z");
Пример
Давайте получим текущий момент времени с помощью
метода now:
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
Instant instant = Instant.now();
System.out.println(instant);
}
}
Результат выполнения кода:
"2024-01-15T12:30:45.123456Z"
Пример
Давайте создадим момент времени из количества секунд, прошедших с начала эпохи Unix:
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
Instant instant = Instant.ofEpochSecond(1700000000);
System.out.println(instant);
}
}
Результат выполнения кода:
"2023-11-14T22:13:20Z"
Пример
Давайте создадим момент времени из миллисекунд
и получим обратно количество миллисекунд с
помощью метода toEpochMilli:
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
Instant instant = Instant.ofEpochMilli(1700000000000L);
long res = instant.toEpochMilli();
System.out.println(res);
}
}
Результат выполнения кода:
1700000000000
Пример
Давайте создадим момент времени из строки в формате ISO-8601
с помощью метода parse:
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
Instant instant = Instant.parse("2024-01-15T12:30:45Z");
System.out.println(instant);
}
}
Результат выполнения кода:
"2024-01-15T12:30:45Z"
Пример
Давайте добавим к моменту времени 5000 миллисекунд
с помощью метода plusMillis и проверим
результат:
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
Instant instant = Instant.ofEpochSecond(1700000000);
Instant res = instant.plusMillis(5000);
System.out.println(res);
}
}
Результат выполнения кода:
"2023-11-14T22:13:25Z"
Пример
Давайте сравним два момента времени с помощью
методов isBefore и isAfter:
import java.time.Instant;
public class Main
{
public static void main(String[] args)
{
Instant first = Instant.ofEpochSecond(1700000000);
Instant second = Instant.ofEpochSecond(1700001000);
System.out.println(first.isBefore(second));
System.out.println(first.isAfter(second));
}
}
Результат выполнения кода:
true
false
Смотрите также
-
метод
now,
который возвращает текущий момент времени -
метод
ofEpochSecond,
который создает момент времени из секунд -
метод
ofEpochMilli,
который создает момент времени из миллисекунд -
метод
parse,
который создает момент времени из строки