onsen code monkey

個人的な日記とプログラミング備忘録です

【Kotlin/Java】0時0分0秒を取得する

UnixTimeStampでデータを管理することが多いのだけれど
とある日の0時0分0秒を指定したい時に毎回しばらく調べてしまうのでメモする。

Javaの場合

Date now = new Date(); // 2019-09-08 07:28:36
Date year = DateUtils.truncate(now, Calendar.YEAR); // 2019-01-01 00:00:00
Date month = DateUtils.truncate(now, Calendar.MONTH); // 2019-09-01 00:00:00
Date day = DateUtils.truncate(now, Calendar.DAY_OF_MONTH); // 2019-09-08 00:00:00
long unixTime = day.getTime() / 1000; // 1567868400

Kotlinの場合

val cal = Calendar.getInstance() // 2019-09-08 07:28:36
val year = cal.get(Calendar.YEAR) // 2019
val month = cal.get(Calendar.MONTH) // 8 (0から始まるので8=9月)
val date = cal.get(Calendar.DATE) // 8
cal.set(year, month, date,0,0,0)
val unixTime = cal.timeInMillis // 1567868400653

ライブラリを使うともっと簡単にできるっぽい。