Метод appendInstant

Метод appendInstant класса DateTimeFormatterBuilder добавляет возможность парсинга и форматирования объектов Instant. Метод поддерживает различные уровни точности - от секунд до наносекунд. При форматировании Instant преобразуется в UTC время и выводится в формате год-месяц-деньTчасы:минуты:секунды.долисекундZ.

Импорт

kotlinimport java.time.format.DateTimeFormatterBuilder
import java.time.Instant

Синтаксис

kotlinfun appendInstant(): DateTimeFormatterBuilder
kotlinfun appendInstant(fractionalDigits: Int): DateTimeFormatterBuilder

Пример

Создадим форматтер для Instant с точностью до секунд:

kotlinval formatter = DateTimeFormatterBuilder()
  .appendInstant()
  .toFormatter()

val instant = Instant.parse("2025-12-31T23:59:59Z")
val formatted = formatter.format(instant)
println(formatted)

Результат выполнения кода:

kotlinString "2025-12-31T23:59:59Z"

Пример

Создадим форматтер для Instant с точностью до миллисекунд:

kotlinval formatter = DateTimeFormatterBuilder()
  .appendInstant(3)
  .toFormatter()

val instant = Instant.parse("2025-07-15T12:30:45.123Z")
val formatted = formatter.format(instant)
println(formatted)

Результат выполнения кода:

kotlinString "2025-07-15T12:30:45.123Z"

Пример

Парсинг строки с Instant в объект:

kotlinval formatter = DateTimeFormatterBuilder()
  .appendInstant()
  .toFormatter()

val instantStr = "2025-03-20T10:15:30Z"
val instant = formatter.parse(instantStr, Instant::from)
println(instant)

Результат выполнения кода:

kotlinInstant "2025-03-20T10:15:30Z"

Пример

Использование кастомного форматтера с другими полями:

kotlinval formatter = DateTimeFormatterBuilder()
  .appendLiteral("Timestamp: ")
  .appendInstant()
  .appendLiteral(" UTC")
  .toFormatter()

val instant = Instant.now()
val formatted = formatter.format(instant)
println(formatted)

Результат выполнения кода:

kotlinString "Timestamp: 2025-01-01T00:00:00Z UTC"

Смотрите также

  • класс Instant,
    который представляет момент времени на временной шкале
  • метод appendPattern класса DateTimeFormatterBuilder,
    который добавляет шаблон для форматирования
  • метод toFormatter класса DateTimeFormatterBuilder,
    который создает готовый форматтер
  • класс DateTimeFormatter,
    который предоставляет готовые форматеры для работы с датой и временем