Метод appendFraction

Метод appendFraction класса DateTimeFormatterBuilder добавляет в форматтер дробную часть указанного временного поля. В первый параметр мы передаем поле, для которого добавляется дробная часть, во второй параметр минимальное количество цифр, в третий параметр максимальное количество цифр, а в четвертый необязательный параметр можно передать признак вывода точки в десятичном формате.

Импорт

kotlinimport java.time.format.DateTimeFormatterBuilder
import java.time.temporal.ChronoField

Синтаксис

kotlinfun appendFraction(field: TemporalField, minWidth: Int, maxWidth: Int, decimalPoint: Boolean): DateTimeFormatterBuilder

Пример

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

kotlinval formatter = DateTimeFormatterBuilder()
  .appendPattern("HH:mm:ss")
  .appendFraction(ChronoField.NANO_OF_SECOND, 0, 3, true)
  .toFormatter()

val timeStr = "14:30:45.123"
println("Formatted: " + timeStr)

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

kotlinString "Formatted: 14:30:45.123"

Пример

Создадим форматтер с наносекундами без десятичной точки:

kotlinval formatter = DateTimeFormatterBuilder()
  .appendPattern("HH:mm:ss")
  .appendFraction(ChronoField.NANO_OF_SECOND, 6, 6, false)
  .toFormatter()

val timeStr = "14:30:45123456"
println("Formatted: " + timeStr)

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

kotlinString "Formatted: 14:30:45123456"

Пример

Парсинг строки с дробной частью секунды:

kotlinval formatter = DateTimeFormatterBuilder()
  .appendPattern("HH:mm:ss")
  .appendFraction(ChronoField.NANO_OF_SECOND, 0, 9, true)
  .toFormatter()

val timeStr = "14:30:45.123456789"
val time = java.time.LocalTime.parse(timeStr, formatter)
println("Parsed time: " + time)

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

kotlinString "Parsed time: 14:30:45.123456789"

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

  • метод appendPattern класса DateTimeFormatterBuilder,
    который добавляет шаблон форматирования
  • метод appendValue класса DateTimeFormatterBuilder,
    который добавляет числовое значение поля
  • метод toFormatter класса DateTimeFormatterBuilder,
    который создает форматтер из билдера
  • класс ChronoField,
    который содержит временные поля для форматирования