Konwersja daty na łańcuch znaków

Kotlin:
Konwersja daty na łańcuch znaków

Jak to zrobić:

Kotlin pozwala na konwersję daty do stringa za pomocą klasy SimpleDateFormat. Przykład:

import java.text.SimpleDateFormat
import java.util.*

fun formatDates(): String {
    val date = Date() // tworzy obiekt daty
    val dateFormat = SimpleDateFormat("dd/MM/yyyy HH:mm", Locale("pl", "PL"))
    return dateFormat.format(date) // konwersja daty do stringa
}

fun main() {
    println(formatDates()) // wyświetla sformatowaną datę
}

Jeśli uruchomimy powyższy kod, na przykład 10 kwietnia 2023 o 15:30, wynik powinien wyglądać tak:

10/04/2023 15:30

Deep Dive

Przed wprowadzeniem java.time w Java 8, standardem był pakiet java.util i klasy takie jak Date oraz SimpleDateFormat. Kotlin, będąc językiem działającym na JVM, dzieli ten sam zestaw narzędzi.

Alternatywą dla SimpleDateFormat jest nowsze API java.time, dostępne od wersji Kotlin 1.3, które ułatwia manipulację czasem i jest bardziej odporny na błędy:

import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
import java.util.Locale

fun formatDatesWithJavaTime(): String {
    val date = LocalDateTime.now()
    val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm").withLocale(Locale("pl", "PL"))
    return date.format(formatter)
}

DateTimeFormatter jest bezpieczniejszy w użyciu, gdyż bierze pod uwagę kontekst takie jak strefy czasowe i wsparcie dla i18n (internacjonalizacje). Co więcej, unika błędów związanych z wielowątkowością, na które narażony jest SimpleDateFormat.

Zobacz też