Analiza składniowa daty z łańcucha znaków

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.