はじめに
今回は、javaの「日付操作」の使い方について、勉強したことを記載していきたいと思います。
主なクラス
DateAndTime APIで使用する主なクラスは下の表になります。
| クラス名 | 詳細 | 
| LocalDate | ローカルの日付 | 
| LocalDateTime | ローカルの日時 | 
| LocalTime | ローカルの時刻 | 
| ZonedDateTime | タイムゾーンを持つ日時 | 
現在の日時の取得
nowメソッドを使用することで取得できます。
    public static void main(String[] args) throws Exception {
        // 現在日付
        LocalDate date = LocalDate.now();
        System.out.println(date); // 2024-07-20
        // 現在日時
        LocalDateTime date2 = LocalDateTime.now();
        System.out.println(date2); // 2024-07-20T15:01:47.310062700
        
        // 現在時刻
        LocalTime time = LocalTime.now();
        System.out.println(time); // 15:01:47.310062700
        
        // 現在時刻(タイムゾーン付き)
        ZonedDateTime date3 = ZonedDateTime.now();
        System.out.println(date3); // 2024-07-20T15:01:47.311060300+09:00[Asia/Tokyo]
    }
特定の日時を取得
ofメソッドを使用することで特定の日時を取得することができます。
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // 日付
        LocalDate date = LocalDate.of(2023,7,19);
        System.out.println(date); // 2023-07-19
        // 時刻
        LocalTime time = LocalTime.of(4,35);
        System.out.println(time); // 04:35
        // 日時
        LocalDateTime date2 = LocalDateTime.of(date, time);
        System.out.println(date2); // 2023-07-19T04:35
    }
年/月/日/時/分/秒を取得する
年/月/日/時/分/秒をそれぞれ取得することが可能です。
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // 日時
        LocalDateTime date = LocalDateTime.now();
        // 年
        int year = date.getYear();
        System.out.println(year);
        // 月
        int month = date.getMonthValue();
        System.out.println(month);
        // 日
        int day = date.getDayOfMonth();
        System.out.println(day);
        // 時
        int hour = date.getHour();
        System.out.println(hour);
        // 分
        int minute = date.getMinute();
        System.out.println(minute);
        // 秒
        int second = date.getSecond();
        System.out.println(second);
    }
日付も文字列に変換する
DateTimeFormatterクラスを使用することで日付を独自のフォーマットとして文字列に変換することができます。
| 文字 | 詳細 | 
| y | 年 | 
| M | 月 | 
| d | 日 | 
| H | 時 | 
| m | 分 | 
| s | 秒 | 
| E | 曜日 | 
例
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // フォーマット
        DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm");
        // 日時
        LocalDateTime date = LocalDateTime.now();
        // 2024/07/20 16:53
        System.out.println(date.format(format));
    }
日付比較
日付を比較するメソッドも用意されています。
| メソッド | 詳細 | 
| isEqual | 日時が同じ場合true | 
| isAfter | 引数より後の場合true | 
| isBefore | 引数より前の場合true | 
例
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // 日時
        LocalDateTime date = LocalDateTime.now();
        LocalDateTime date2 = LocalDateTime.of(2023, 5, 11, 5, 50);
        boolean result1 = date.isEqual(date2);
        boolean result2 = date.isAfter(date2);
        boolean result3 = date.isBefore(date2);
    }
日付計算
| メソッド | 詳細 | 
| plusYears | 年の加算 | 
| minusYears | 年の減算 | 
| plusMonths | 月の加算 | 
| minusMonths | 月の減算 | 
| plusDays | 日の加算 | 
| minusDays | 日の減算 | 
| plusHours | 時の加算 | 
| minusHours | 時の減算 | 
| plusMinutes | 分の加算 | 
| minusMinutes | 分の減算 | 
| plusSeconds | 秒の加算 | 
| minusSeconds | 秒の減算 | 
例
    /**
     * @param args
     * @throws Exception
     */
    public static void main(String[] args) throws Exception {
        // 日時
        LocalDateTime date = LocalDateTime.now();
        System.out.println(date.plusYears(1));
        System.out.println(date.minusYears(1));
        System.out.println(date.plusMonths(1));
        System.out.println(date.minusMonths(1));
        System.out.println(date.plusDays(1));
        System.out.println(date.minusDays(1));
        System.out.println(date.plusHours(1));
        System.out.println(date.minusHours(1));
        System.out.println(date.plusMinutes(1));
        System.out.println(date.minusMinutes(1));
    }
ドキュメント
【公式ドキュメント】
Java SE Specifications (oracle.com)
最後に
Javaの環境構築は、この記事を参照してみてください。
【開発環境構築】VS CodeでJavaを使用するための環境構築を実施する – SEもりのLog (selifemorizo.com)
以上、ログになります。
これからも継続していきましょう!!

 
  
  
  
  

コメント