オンラインでAndroidアプリ開発について学ぶ【TECHACADEMY】
ながれです。
今回は、Android開発で現在日時を取得する方法について。
yyyy/mm/dd HH:mm:ss:ms(年/月/日 時:分:秒:ミリ秒)までの取得方法を紹介します。
ファイルを保存する際などに、ファイル名に日時情報を付与したい場面などに有効です。
また、今回はミリ秒まで対応しているので1秒以内に複数ファイルが生成される場合にも有効です。
Androidで日時を取得する方法
日時の取得方法は複数存在します。
1 . Calendarクラス
2 . Dateクラス
3 . Timeクラス
一般的に多く利用されているのは、1 or 2でしょう。
しかし、2と3は現在、日時を取得するget系のメソッドがAndroidデベロッパー公式で非推奨とされています。
2と3は使用しないでください。
では、残るは1のCalendarクラスのみとなります。
Calendarクラスの日時取得方法について、紹介していきます。
(余談ですが、「Calendar」と書く際に「Calender」と書いてしまうのは自分だけ?)
Calendarクラスで日時を取得する方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.util.Calendar; 〜〜〜 // Calendarクラスのインスタンス取得 Calendar cal = Calendar.getInstance(); // 年を取得 int yyyy = cal.get(Calendar.YEAR); // 月を取得(ただし0〜11のため、1を加算する) int mm = cal.get(Calendar.MONTH) + 1; // 日を取得 int dd = cal.get(Calendar.DAY_OF_MONTH); // 時を取得 int hh = cal.get(Calendar.HOUR_OF_DAY); // 分を取得 int mm = cal.get(Calendar.MINUTE); // 秒を取得 int ss = cal.get(Calendar.SECOND); // ミリ秒を取得 int ms = cal.get(Calendar.MILLISECOND); |
簡単ですね。
DateFormatクラスやSimpleDateFormatクラスで取得してあげても良いでしょう。
ただし、注意点が一つ。
1 2 |
// 月を取得(ただし0〜11) int mm = cal.get(Calendar.MONTH) + 1; |
Calendarクラスで取得できる月の値は 0〜11 となっています。
これは、月のフィールド値が以下のように設定されているからです。
JANUARY(0) FEBRUARY(1) MARCH(2) APRIL(3) MAY(4) JUNE(5)
JULY(6) AUGUST(7) SEPTEMBER(8) OCTOBER(9) NOVEMBER(10)
DECEMBER(11)
1〜12の値を取得したい場合は、必ず1を加算してあげましょう。
終わりに
上記で、Androidでの日時取得方法がご理解いただけたかと思います。
日時取得方法についてまとめたサイトは色々ありますが、結局どのクラスを使えば良いの?ミリ秒まで取れんの?という疑問があったので、まとめてみました。
是非参考にしてみてください。