文字列から日付をパースする

Kotlin:
文字列から日付をパースする

方法:

Kotlinはjava.timeパッケージを通じて日付の解析をサポートしており、Java 8で導入されました。ここでは、LocalDateTimeと特定のパターンを使用した単純なアプローチを紹介します:

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)  // 出力: 2023-04-01T12:00
}

より柔軟性が必要な場合や、APIのような外部ソースからの日付を扱う場合は、Joda-Timeのようなサードパーティライブラリを使用することもありますが(java.timeが堅牢になった現在はあまり一般的ではありません)、JDKによって提供される現代的なアプローチを採用することが、ほとんどのKotlinアプリケーションには推奨されます。

サードパーティライブラリを使用せずにKotlinで日付を解析するには、Java 8より前のバージョンやjava.timeをサポートしていないAndroid APIレベルでは、SimpleDateFormatクラスも使用できます:

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)  // 出力はタイムゾーンに基づいて異なります。例: Sat Apr 01 12:00:00 GMT 2023
}

SimpleDateFormatを使用する場合は、解析された日付の予期しないオフセットを避けるために、常にタイムゾーンを設定することを忘れないでください。