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