【Kotlin】日時型LocalDateTimeを使用する
はじめに
Javaでは日時を扱うためのLocalDateTime型が用意されており、もちろんKotlinからもそれを使うことができます。
※コメントで指摘がありましたので再度修正しました。
日時はこの型を利用して処理を行うわけですが、使い勝手が良くありません。
おまけにコンパイル時にワーニングを出します。
さらに検索しても使い方が出てきません。
ちょっと日時を扱いたかったのに挫折する人も多いでしょう。
なので日時を簡単に扱うためのクラスそのものと、そのクラスを使った日時の処理を記載します。
初歩的な処理しか書いてないので必要があれば各自で追加してください。
日付操作クラスの作成
日付を操作するためのクラスを作ってしまいましょう。
ソースは
class DateTimeCtrl {
@SuppressLint("NewApi")
fun GetNow() : LocalDateTime{
return LocalDateTime.now()
}
fun GetNowStr(pattern: String) : String{
val dt = GetNow()
return Format(dt,pattern)
}
@SuppressLint("NewApi")
fun Format(date : LocalDateTime, pattern: String) : String{
val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern(pattern)
return date.format(formatter)
}
@SuppressLint("NewApi")
fun Parse(str : String, pattern: String) : LocalDateTime{
val formatter: DateTimeFormatter = DateTimeFormatter.ofPattern(pattern)
val dt: LocalDateTime = LocalDateTime.parse(str,formatter)
return dt
}
}
ToDoで警告を回避していたのを修正
日時操作クラスの使い方
さっそく使って見ます。
class MainActivity : AppCompatActivity() {
private val DateTime = DateTimeCtrl()
使いたいクラス内で定義します。
DateTime.GetNowStr("yyyy/MM/dd HH:mm:ss.SSS")
現在の日時を文字列型で取得します。引数として文字列フォーマットを渡します。
文字 | 説明 |
---|---|
yyyy | 年を西暦を4桁で表示 |
MM | 月を表示 |
dd | 日を表示 |
HH | 時を24時間形式で表示 |
mm | 分を表示 |
ss | 秒を表示 |
SSS | ミリ秒を表示 |
あとは一気に説明します
// 現在日時を日時型で取得
val d = DateTime.GetNow()
// 現在日時を指定したフォーマットの文字列で取得
val s1 = DateTime.GetNowStr("yyyy/MM/dd HH:mm:ss.SSS")
// 日時型を指定したフォーマットの文字列に変換
val s2 = DateTime.Format(d,"yyyy/MM/dd HH:mm:ss.SSS")
// 指定したフォーマットの日時文字列を日時型に変換
val d2 = DateTime.Format(s2,"yyyy/MM/dd HH:mm:ss.SSS")
最後に
たったこれだけなのですが、工夫次第で色々な用途に使うことが出来るかと思います。
年月日それぞれの要素の単体取得や設定、時分秒の加減算などあれば便利そうですね。
Author And Source
この問題について(【Kotlin】日時型LocalDateTimeを使用する), 我々は、より多くの情報をここで見つけました https://qiita.com/vram/items/2b88643fc1ba459fc603著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .