Päivämäärän jäsennys merkkijonosta

Kotlin:
Päivämäärän jäsennys merkkijonosta

Kuinka:

Kotlin tukee päivämäärän jäsentämistä java.time-paketin avulla, joka otettiin käyttöön Java 8:ssa. Tässä on yksinkertainen lähestymistapa käyttäen LocalDateTime-luokkaa ja tiettyä kaavaa:

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 date = parseDateFromString(dateString)
    println(date)  // Tuloste: 2023-04-01T12:00
}

Joustavuuden lisäämiseksi, tai käsiteltäessä päivämääriä ulkoisista lähteistä kuten APIeista, saatat käyttää myös kolmannen osapuolen kirjastoa, kuten Joda-Time (vaikka se on vähemmän yleistä nyt, kun java.time on robusti). Kuitenkin JDK:n tarjoaman modernin lähestymistavan noudattaminen on suositeltavaa useimmissa Kotlin-sovelluksissa.

Jotta voisit jäsentää päivämäärän Kotlinissa käyttämättä kolmansien osapuolten kirjastoja, voit myös hyödyntää SimpleDateFormat-luokkaa versioissa ennen Java 8:aa tai Androidin API-tasoilla, joilla ei ole java.time-tukea:

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 date = parseDateUsingSimpleDateFormat(dateString)
    println(date)  // Tuloste vaihtelee aikavyöhykkeesi mukaan, esim., lauantai huhtikuun 01 12:00:00 GMT 2023
}

Muista aina asettaa aikavyöhyke, kun käytät SimpleDateFormat-luokkaa, jotta välttyisit odottamattomilta eroilta jäsentämissä päivämäärissä.