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
.