【Kotlin/Android】SimpleDateFormatの使い方!日付を文字列に変換する

この記事からわかること
- Android Studio/Kotlinで日付(Date)を文字列に変換する方法
- SimpleDateFormatの使い方
- DateTimeFormatterとの違い
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
SimpleDateFormatの使い方
KotlinのSimpleDateFormat
クラスは日付(Date型)を任意の形式の文字列(String型)に変換したり、文字列からDateオブジェクトに変換したりといった日時を操作できるクラスです。SimpleDateFormat
クラス自体はJavaで使用されていたクラスでありKotlinでも使用できるようにラップされています。
SimpleDateFormat
インスタンスを生成する際に引数にフォーマットパターンを文字列で指定してインスタンス化します。ここで指定したフォーマットパターンに基づいて日時情報を操作できるようになります。
おすすめ記事:フォーマットパターンの種類
スレッドセーフではないので注意
SimpleDateFormat
クラスはスレッドセーフではないためマルチスレッド環境で使用する際にはアプリクラッシュなどを引き起こす可能性があります。
そのためKotlin Coroutines
やRxJava/RxKotlin
と使用する際は注意が必要です。
Date型からString型に変換する
SimpleDateFormat
を使用してDate
型をString
型に変換するためにはformat
メソッドを使用します。
StringからDate型に変換する
SimpleDateFormat
を使用してString
型をDate
型に変換するためにはparse
メソッドを使用します。
DateTimeFormatterとの違い
Kotlin
でSimpleDateFormat
と同じような役割を持ったクラスにDateTimeFormatter
があります。このクラスも日付オブジェクトをString型に変換したり、その逆も変換することが可能となっています。
SimpleDateFormat
との大きな違いは取り扱える日付オブジェクト型とスレッドセーフか否かです。
- | SimpleDateFormat | DateTimeFormatter |
---|---|---|
日付オブジェクト | java.util.Date | java.time.temporal. TemporalAccessor※ |
スレッドセーフ | × | ⚪︎ |
※TemporalAccessor
は日付や時刻、オフセット、またはこれらの組み合わせなどの時間オブジェクトへの読み取り専用アクセスを定義するフレームワークレベルのインターフェイスです。
公式リファレンス:TemporalAccessorインターフェース
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。