Kotlin:
Analiza składniowa daty z łańcucha znaków
Jak to zrobić:
Kotlin wspiera parsowanie dat za pomocą pakietu java.time
, wprowadzonego w Java 8. Oto prosty sposób użycia LocalDateTime
i konkretnego wzorca:
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
fun parseDateFromString(dateString: String): LocalDateTime {
val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
return LocalDateTime.parse(dateString, formatter)
}
fun main() {
val dateString = "2023-04-01 12:00:00"
val data = parseDateFromString(dateString)
println(data) // Wynik: 2023-04-01T12:00
}
Dla większej elastyczności, lub aby obsłużyć daty z zewnętrznych źródeł, takich jak API, można użyć biblioteki stron trzecich, takiej jak Joda-Time (choć jest to mniej powszechne teraz, gdy java.time
jest solidne). Jednakże, przestrzeganie nowoczesnego podejścia dostarczonego przez JDK jest preferowane dla większości aplikacji Kotlin.
Aby parsować daty w Kotlinie bez użycia bibliotek stron trzecich, można również skorzystać z klasy SimpleDateFormat
dla wersji przed Java 8 lub poziomów API Androida, które nie obsługują java.time
:
import java.text.SimpleDateFormat
fun parseDateUsingSimpleDateFormat(dateString: String): java.util.Date {
val formatter = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
return formatter.parse(dateString)
}
fun main() {
val dateString = "2023-04-01 12:00:00"
val data = parseDateUsingSimpleDateFormat(dateString)
println(data) // Wynik będzie się różnił w zależności od strefy czasowej, np., Sob Apr 01 12:00:00 GMT 2023
}
Pamiętaj, aby zawsze ustawić strefę czasową przy pracy z SimpleDateFormat
, aby uniknąć nieoczekiwanych przesunięć w parsowanych datach.