
目次
背景
こんにちは。 かりんとうマニア(@karintozuki)です。
今回はKotlinで日時を好きなフォーマットで表示する方法を紹介します。
Kotlinで使える日時を扱うクラス
Kotlinの、と言いつつも、実際はJavaのクラスです。
Javaには日時を扱うクラスがいくつかあります。
(これらはより良い実装のために試行錯誤を重ねた結果だそうですが、
新しくJavaを始める人にとってはややこしいだけですね。)
以下の表がKotlinで使える日時を扱うためのクラスです。
基本的にはLocalDateTimeが推奨されています。
クラス名 | 説明 |
---|---|
Date | 一番の古株。後方互換性のためだけに残されているクラスなので、新しいプロジェクトでは使わないのが吉。ただ、既存のプロジェクトでは見かける機会もあると思います。 |
Calendar | Dateだけでは日付の操作ができないので、それらが実装されています。Dateと一緒に使うイメージ。 |
LocalDateTime | Java8で導入されたクラス。使える時はこちらを使ったほうが良いです。Localはタイムゾーンについての情報をもたないという意味合いです。 |
また、Joda Timesというライブラリも人気らしいのですが、今回はKotlin標準で使えるクラスだけを扱うことにします。
というわけで、それぞれのフォーマット方法を紹介します。
LocalDateTime型で書式を指定する
LocalDateTime型で書式を指定したい時は
DateTimeFormatterを使用します。
実装例
1 | import java.time.LocalDateTime |
Date型で書式を指定する
Date型で書式を指定したい時は
SimpleDateFormat型を使用します。
実装例
1 | import java.util.Date |
Calendar型で書式を指定する
Calendar型は二つ方法があります。
一つはDate型に変換して、SimpleDateFormatを使う方法。
もう一つはCalendarが持っているget()メソッドを利用して日付や時間などを個別に取り出す方法です。
実装例
1 | import java.util.Date |
Calendar.get(Calendar.MONTH)
で取得できる数字は0始まりの月です。
実装例では+1をすることで実際の月と合わせています。
パターン文字
日時フォーマットを指定する際に使用できる文字を紹介します。
たくさんあるので、ここではよく使われるものだけ紹介します。
興味があれば公式ドキュメントを見てみてください。
DateTimeFormatterの方が使える文字が増えていますが、
よく使う以下のものはどちらにも使えます。
文字 | 時間の単位 |
---|---|
y | 年 |
M | 月 |
d | 日 |
H | 時間(0-23) |
h | 午前・午後の時間(0-11) |
m | 分 |
s | 秒 |
S | ミリ秒 |
参考:公式ドキュメント
SimpleDateFormat
DateTimeFormatter
まとめ
今回はKotlinで日時をフォーマットを指定して表示する方法を紹介しました。
それじゃ今日はこの辺で。
関連記事
こちらの記事もおすすめ。
PR
あなたの会社はあなたの技術を評価してくれていますか?
技術力を高めようと頑張っているのに、
技術が評価されないような会社にいたらそれは良い環境なのでしょうか?
エンジニアとして技術を高めたいのなら環境を選ぶことも大事です。
レバテックキャリア
エンジニアとして働いていて実務経験があるなら、
求人数の充実具合からレバテックキャリアがおすすめです。
IT転職ではデファクト・スタンダードですね。
▼レバテック キャリア 登録はこちら▼
Tech Clips
Tech Clipsは年収500万以上&自社サービスを持った会社に特化した求人サイトです。
首都圏限定になってはしまいますが、
収入を増やしたい、自社サービスを持った企業への転職をしたい人におすすめです。