【Java】ZonedDateTimeで時間をコントロールしちゃうぞ!
こんにちは!Monです!
ZonedDateTimeで時間をコントロールしようというものです!
開発しているときに日付とか時間とか扱うことがあると思います
Java開発で時間を取り扱う中でよく使われるクラスが「ZonedDateTime」です(Java8以降)
今回は「ZonedDateTimeクラス」で用意されている一般的なメソッドを紹介したいと思います
では見ていきましょう!
1. 現在日時取得
// 現在処理日時取得
ZonedDateTime now = ZonedDateTime.now();
2. 時間をコントロール
// 1秒後を取得
ZonedDateTime nextOneSecond = now.plusSeconds(1L);
// 1秒前を取得
ZonedDateTime beforOneSecond = now.minusSeconds(1L);
// 1分後を取得
ZonedDateTime nextOneMinute = now.plusMinutes(1L);
// 1分前を取得
ZonedDateTime beforOneMinute = now.minusMinutes(1L);
// 1時間後を取得
ZonedDateTime nextOneHour = now.plusHours(1L);
// 1時間前を取得
ZonedDateTime beforOneHour = now.minusHours(1L);
3. 日付をコントロール
// 翌日の日付を取得
ZonedDateTime tomorrow = now.plusDays(1L);
// 昨日の日付を取得
ZonedDateTime yesterday = now.minusDays(1L);
// 1週間後の日付を取得
ZonedDateTime nextWeek = now.plusWeeks(1L);
// 1週間前の日付を取得
ZonedDateTime beforeWeek = now.minusWeeks(1L);
// 1か月後の日付を取得
ZonedDateTime nextMonth = now.plusMonths(1L);
// 1か月前の日付を取得
ZonedDateTime beforeMonth = now.minusMonths(1L);
// 月初の日付を取得
ZonedDateTime firstDayOfMonth = now.with(TemporalAdjusters.firstDayOfMonth());
// 月末の日付を取得
ZonedDateTime nextMonth = now.with(TemporalAdjusters.lastDayOfMonth());
// 1年後の日付を取得
ZonedDateTime nextMonth = now.plusYears(1L);
// 1年前の日付を取得
ZonedDateTime beforeMonth = now.minusYears(1L);
4. 日付・時間の指定
// 時間の指定
ZonedDateTime selectHour = now.withHour(1);
// 日の指定
ZonedDateTime selectDay = now.withDayOfMonth(1);
// 月の指定
ZonedDateTime selectMonth = now.withMonth(1);
// 年の指定
ZonedDateTime selectYear = now.withYear(2200);
5. その他
// 日付以下を切り捨てたい!(時間を00:00:00的な感じにしたい!)
ZonedDateTime onlyDate = now.truncatedTo(ChronoUnit.DAYS);
// 「2023年11月22日の日付切り捨て」はこんな感じ
ZonedDateTime selectDay =
now.withYear(2023)
.withMonth(11)
.withDayOfMonth(22)
.truncatedTo(ChronoUnit.DAYS);
いかがでしたでしょうか?
ほとんど「plus」と「minus」がついており、覚えやすいですよね!
ぜひ参考にしてみてください!
ではっ
是非フォローしてください
最新の情報をお伝えします