Webサイト制作コースのお申し込みはこちら

Javaのパッケージとは?

Javaには、クラス名を一意に決められるように「パッケージ」という仕組みがあります。

パッケージ(package)は、小包という意味があるように、クラスをグループにまとめて分類・管理できるものです。

クラスをパッケージに所属させるためには、クラスのソースコードの先頭にpackage文を記述します。

これによって、Javaが提供しているクラス以外に個人的に作ったクラスは、パッケージを作成しておくと、既存のクラスと簡単に区別できます。

つまり、多くのクラスを使い分けるのに便利だと言えるのです。

パッケージ外のクラスにアクセスする場合は、import文によって対象のクラスの場所を明示します。

java.utilパッケージとは?

JavaのAPIには、数多くのパッケージとクラスが含まれています。

APIのクラスには「java.」または「javax.」で始まるパッケージ名が利用されています。

「java.util」もその中の一つで、プログラミングを便利にする様々なクラス群が含まれています。

util は ユーティリティのことで、英語で「役に立つもの」という意味があります。

java.utilパッケージの使い方

java.utilパッケージを使うには、ファイルでimport文を記述します。

記述方法は、使いたいクラスを指定するか、「*」でutilパッケージに含まれるクラス全てを読み込めばOKです。

■記述例
// ArrayListクラスを使いたい場合
import java.util.ArrayList;

// ArrayListも含めた全てのクラスを使いたい場合
import java.util.*;

java.utilパッケージのDateクラスとは?

Dateクラスは、日時を取得したり、日時を計算したりする際に利用する日付型のクラスです。

Dateクラスオブジェクトの記述ルールは、下記のようになっています。

Date 変数名 = new Date();

java.utilパッケージのDateクラスの使い方

では実際に、Dateクラスの使い方を見ていきましょう。

java.util.dateで日時を加算・減算する

Date型の日時を加算するには、Calendarクラスのaddメソッドを使用します。

記述方法は下記の通りです。

calendar.add(Calendar.加算させたい日時, 加算する値);

第一引数には、Calendarクラスの定数である「YEAR」「MONTH」「DATE」といった値を指定します。

そして、第二引数には加算する値を指定します。

実際にサンプルプログラムを記述してみると、下記のように書けます。

■記述例
import java.util.Date;
import java.util.Calendar;

public class Main {
    public static void main(String[] args) {
      Date date = new Date();

      // 現在の日時を表示
      System.out.println("現在の日時:" + date);
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(date);

      // 5日後の日時を表示
      calendar.add(Calendar.DAY_OF_MONTH, 5);
      date = calendar.getTime();
      System.out.println("5日後の日時:" + date);

      // 2ヶ月の日時を表示
      calendar.add(Calendar.MONTH, 2);
      date = calendar.getTime();
      System.out.println("2ヶ月後の日時:" + date);

      // 3年後の日時を表示
      calendar.add(Calendar.YEAR, 3);
      date = calendar.getTime();
      System.out.println("3年後の日時:" + date);
    }
}
■実行結果
mbp:desktop potepan$ java Main
現在の日時:Sun Feb 28 12:39:55 JST 2021
5日後の日時:Fri Mar 05 12:39:55 JST 2021
2ヶ月後の日時:Wed May 05 12:39:55 JST 2021
3年後の日時:Sun May 05 12:39:55 JST 2024

指定した日時が加算できているのがわかります。

加算ではなく、減算したい場合は値をマイナスで指定すればOKです。

■記述例
import java.util.Date;
import java.util.Calendar;
public class Main {
    public static void main(String[] args) {
      Date date = new Date();
      // 現在の日時を表示
      System.out.println("現在の日時:" + date);
      Calendar calendar = Calendar.getInstance();
      calendar.setTime(date);
      // 5日前の日時を表示
      calendar.add(Calendar.DAY_OF_MONTH, -5);
      date = calendar.getTime();
      System.out.println("5日前の日時:" + date);
      // 2ヶ月前の日時を表示
      calendar.add(Calendar.MONTH, -2);
      date = calendar.getTime();
      System.out.println("2ヶ月前の日時:" + date);
      // 3年前の日時を表示
      calendar.add(Calendar.YEAR, -3);
      date = calendar.getTime();
      System.out.println("3年前の日時:" + date);
    }
}
■実行結果
mbp:desktop potepan$ java Main
現在の日時:Sun Feb 28 12:44:32 JST 2021
5日前の日時:Tue Feb 23 12:44:32 JST 2021
2ヶ月前の日時:Wed Dec 23 12:44:32 JST 2020
3年前の日時:Sat Dec 23 12:44:32 JST 2017

なお、Calendarクラスについては以下の記事で詳しく解説しています。

【関連記事】

▶︎【Java入門】日付情報を取得出来るCalendarクラスを理解しよう!

java.util.dateで日時を比較する

日時を比較するには、Dateクラスのbeforeメソッド、afterメソッド、compareToメソッドなどを使います。

それぞれの使用例をサンプルコードで確認しましょう。

■記述例
import java.util.Date;

public class Main {
    public static void main(String[] args) {
      Date date1 = new Date(2021, 2, 28, 18, 20, 10);
      Date date2 = new Date(2021, 3, 1, 17, 30, 50);

      // date1 が date2 よりも前にあるか判定
      System.out.println("date1 が date2 よりも前にあるか判定:" + date1.before(date2));

      // date2 が date1 よりも前にあるか判定
      System.out.println("date2 が date1 よりも前にあるか判定:" + date2.before(date1));

      // date1 が date2 よりも後にあるか判定
      System.out.println("date1 が date2 よりも後にあるか判定:" + date1.after(date2));

      // date2 が date1 よりも後にあるか判定
      System.out.println("date2 が date1 よりも後にあるか判定:" + date2.after(date1));

      // date1 が date2 よりも前の場合は -1 を返す
      System.out.println("date1 が date2 よりも前の場合は -1 を返す:" + date1.compareTo(date2));
      // date2 が date1 よりも後の場合は 1 を返す
      System.out.println("date2 が date1 よりも後の場合は 1 を返す:" + date2.compareTo(date1));
      // 日時が等しい場合は 0 を返す
      System.out.println("日時が等しい場合は 0 を返す:" + date1.compareTo(date1));
    }
}
■実行結果
mbp:desktop potepan$ java Main
date1 が date2 よりも前にあるか判定:true
date2 が date1 よりも前にあるか判定:false
date1 が date2 よりも後にあるか判定:false
date2 が date1 よりも後にあるか判定:true
date1 が date2 よりも前の場合は -1 を返す:-1
date2 が date1 よりも後の場合は 1 を返す:1
日時が等しい場合は 0 を返す:0

java.util.dateで日付指定する

日付を特定の書式で指定したい場合は、SimpleDateFormatクラスを使います。

任意の日時フォーマットで、Date型の日時を作成可能です。

サンプルコードで見ていきましょう。

■記述例
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Main {
    public static void main(String[] args) {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

      try {
          Date date = sdf.parse("2021/02/28 13:30:00");
          System.out.println(date.toString());
      } catch(ParseException e) {
          e.printStackTrace();
      }
    }
}
■実行結果
mbp:desktop potepan$ java Main
Sun Feb 28 13:30:00 JST 2021

現在の日時を指定したフォーマットで表示させたい場合は、以下のように書けます。

■記述例
import java.util.Date;
import java.text.SimpleDateFormat;
public class Main {
    public static void main(String[] args) {
      Date date = new Date();
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd(E) HH:mm:ss");
      System.out.println(sdf.format(date));
    }
}
■実行結果
mbp:desktop potepan$ java Main
2021/02/28(日) 13:32:26

現在日時の取得について

Javaで現在日時を取得する方法には以下の3種類があります。

  1. Dateクラス
  2. Calendarクラス
  3. LocalDateTimeクラス

それぞれを使った記述例は以下の通りです。

■記述例
import java.util.Date;
import java.util.Calendar;
import java.time.LocalDateTime;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;

public class Main {
    public static void main(String[] args) {
      SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

      Date date = new Date();
      String str1 = format.format(date);
      System.out.println("--- Dateクラスで現在日時を取得 ---");
      System.out.println(str1);

      Calendar calendar = Calendar.getInstance();
      String str2 = format.format(calendar.getTime());
      System.out.println("--- Calendarクラスで現在日時を取得 ---");
      System.out.println(str2);

     DateTimeFormatter format2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
     LocalDateTime localDateTime = LocalDateTime.now();
     String str3 = localDateTime.format(format2);
     System.out.println("--- LocalDateTimeクラスで現在日時を取得 ---");
     System.out.println(str3);
    }
}
■実行結果
mbp:desktop potepan$ java Main
--- Dateクラスで現在日時を取得 ---
2021/02/28 13:46:52
--- Calendarクラスで現在日時を取得 ---
2021/02/28 13:46:52
--- LocalDateTimeクラスで現在日時を取得 ---
2021/02/28 13:46:52

java.util.dateとjava.sql.dateの違い

java.util.dateが日時を取得したり、日時を計算したりする際に利用する日付型のクラスであるのに対し、java.sql.dateは、PreparedStatement に値を渡すときに使います。

Dateの場合は日付の情報のみになり、Timestampの場合は時分秒ミリ秒まで保存可能です。

また、java.sql.date は java.util.dateクラスのサブクラスとなっています。

推奨されていないメソッドを除けば、java.sql.date がオーバーライドしているメソッドは「setTime(long)」と「toString()」だけです。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。