【Kotlin/Android】Calendarクラスの使い方!日付の比較や操作、曜日の取得方法

この記事からわかること
- Android Studio/KotlinでCalendarクラスの使い方
- 日付や時刻の比較や操作方法
- 曜日や月などを取得するには?
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
Calendarクラスとは?
AndroidのCalendar
クラスは日付と時刻を操作するためのJavaのクラスです。日付や時刻の加算や比較、曜日や月の取得などさまざまな機能を提供してくれています。
Androidでは日付に関するクラスが他にもあるので以下の記事を参考にしてください。
現在の日付のCalendarインスタンスを取得する
Calendar
インスタンスは日付情報を保持しています。getInstance
メソッドを使用することで現在日時のCalendarインスタンスを取得することができます。
生成したCalendar
インスタンスを出力すると以下のようになります。内部的にUNIXタイムやTimeZone、曜日情報、日時1つ1つの情報を保持していることが確認できます。
日時を1つずつ取得する
get
メソッドの引数にCalendar.対象
を渡すことで日時情報を1つ1つ取得することが可能です。1月=0
、2月=1
という数え方になっているので月のみ1ヶ月少ない数値が返ってきます。+1
することで実際の月に合わせる必要があります。
タイムゾーンを変更する
Calendar
クラスは内部にTimeZoneを持っており、設定されているTimeZoneに応じて取得する日付なども変化します。タイムゾーンを明示的に変更するにはtimeZone
プロパティにTimeZone
型を渡します。
日本時間を指定すれば日本時間の日付が取得でき、UTC
にすればUTCでの日付(-9時間ずれた値)が取得できるようになります。
指定できるTimeZoneID
指定できるTimeZoneID
はgetAvailableIDs
メソッドを使用することで一覧を取得することができます。
主要なTimeZoneID
- UTC
- Asia/Tokyo
曜日を取得する
曜日を取得するにはget
メソッドの引数にCalendar.DAY_OF_WEEK
を渡します。
日時の加算/減算
日時の加算/減算をするにはadd
メソッドの引数にCalendar.対象
を渡し、加算/減算したい数を渡します。負数を渡せば減算することができます。
任意の日時のCalendarインスタンスを作成する
任意の日付Date
型をCalendar
に変換したい場合はtime
プロパティにDate
型の値をそのまま格納すればOKです。
同じ日付かどうか比較する
同じ日付かどうか比較するにはcompareTo
メソッドを使用します。前後かどうかを知りたい場合はbefore
/after
メソッドを使用します。。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。