Kotlin:
Преобразование даты в строку
Как:
В Kotlin вы можете преобразовать Date в String с использованием класса SimpleDateFormat. Давайте напишем немного кода:
import java.text.SimpleDateFormat
import java.util.Date
fun main() {
val date = Date() // Создаем объект Date для текущего времени
val format = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") // Определяем шаблон даты
val dateString = format.format(date) // Преобразуем Date в String
println(dateString) // Выводим строку с датой
}Пример вывода может выглядеть так:
2023-03-25 14:45:32Погружение в детали
До появления java.time класс SimpleDateFormat был основным инструментом для преобразования даты в строку в Java и, по наследству, в Kotlin. Да, Kotlin работает на Java Virtual Machine и удобно взаимодействует с библиотеками Java.
Однако с появлением Java 8 java.time вошел в игру, привнеся DateTimeFormatter с гораздо более совершенным API. Это стало переломным моментом, предложив безопасное, неизменяемое и потокобезопасное управление датой и временем. Поддержка этого в Kotlin реализована без проблем:
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun main() {
val currentDate = LocalDateTime.now() // Получаем текущую дату и время
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val formattedDate = currentDate.format(formatter)
println(formattedDate)
}Альтернативы? Конечно. Для нестандартных требований или при работе с несколькими библиотеками дат, сторонние опции вроде Joda-Time ранее считались золотым стандартом. На сегодняшний день java.time покрывает большинство потребностей.
Что касается деталей реализации, SimpleDateFormat не является потокобезопасным, что означает, что он может споткнуться, когда используется в параллельных настройках. У DateTimeFormatter такой проблемы нет. Создайте один раз, используйте вечно — или, по крайней мере, на протяжении всего вашего приложения, не беспокоясь особо.
См. также
DateTimeFormatterJavaDoc для всех ваших потребностей в шаблонах: DateTimeFormatter- Если вы чувствуете ностальгию или нужны примеры для устаревших систем, вот информация о
SimpleDateFormat: SimpleDateFormat