Tolke en dato fra en streng

Kotlin:
Tolke en dato fra en streng

How to:

I Kotlin parser vi datoer ved hjelp av java.time-biblioteket. Her er et eksempel:

import java.time.LocalDate
import java.time.format.DateTimeFormatter

fun main() {
    val dateString = "2023-04-02"
    val formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd")
    val date = LocalDate.parse(dateString, formatter)
    
    println(date) // Skriver ut: 2023-04-02
}

Og med et annet format:

import java.time.LocalDateTime

fun main() {
    val dateTimeString = "02.04.2023 14:00"
    val formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm")
    val dateTime = LocalDateTime.parse(dateTimeString, formatter)

    println(dateTime) // Skriver ut: 2023-04-02T14:00
}

Deep Dive

Før java.time kom i Java 8, brukte programmerere SimpleDateFormat fra java.util som var mindre robust og ikke trådsikker. java.time-biblioteket introduserte en mer intuitiv API og faste datamodeller.

Som alternativ til innebygd parsering, kan du bruke tredjepartsbiblioteker som Joda-Time, men dette er ofte ikke nødvendig siden java.time er så kraftig. Ved implementering er det viktig å forstå datoformatet du jobber med. Mønsteret i DateTimeFormatter må matche strengen eksakt, ellers kastes en DateTimeParseException.

See Also