Javaプログラミング/Javaの基本

日時とカレンダー(2ページ目)

日時を扱う場合、Javaでは専用のクラスを利用します。その基本的な使い方を理解しておきましょう。

執筆者:掌田 津耶乃

プログラムを実行すると、現在の日時が表示される。

CalendarとGregorianCalendar


サンプルではリストのプログラムを実行すると、現在の日時が出力されます。ここでは、以下のようにしてCalendarクラスを取得しています。

Calendar cal = Calendar.getInstance();

Calendarインスタンスを取得するには、getInstanceというメソッドを用います。new Calendarではありません。なぜなら、Calendarは「抽象クラス」というものだからです。抽象クラスというのは、物事の原型となる部分を定義したもので、これ自体ではnewでインスタンスを作ることはできません。通常は、これを継承したサブクラスを作り、それを利用します。

Calendarは、getInstanceを呼び出すと、現在のシステムと国情報で使用されているカレンダーのクラスのインスタンスを作成し、返します。通常は、ここでGregorianCalendarが使用されます。こうして取得されたインスタンスを使って日時を操作するのです。

ここで、「new GregorianCalendarじゃダメなの?」と思った人もいるかも知れません。もちろん、new GregorianCalendarでも問題はありません。Calendar.getInstanceとの違いは、「new GregorianCalendarでは常にGregorianCalendarインスタンスが得られるが、Calendar.getInstanceではそうとは限らない」という点です。

Calendar.getInstanceは、あくまで「現在のシステムで使用されるカレンダーのオブジェクト」を作成するものです。これが、現在のほとんどの国ではGregorianCalendarを返すことになりますから、現時点では「両者は同じ働き」といってよいでしょう。が、それ以外のカレンダーが使われている国や地域の場合には、別のクラスのインスタンスを返す可能性もあります。この違いをしっかりと理解しておいてください。

さて、取得したインスタンスから、現在の日時をテキストとして表示するにはどうすればよいでしょうか。きちんとした方法(?)は、この後で触れるとして、とりあえず簡単なやり方は「Dateインスタンスを取り出してtoStringする」というものです。

Calendarクラスは、実は内部にDateインスタンスを保持しています。このDateインスタンスを取り出し、toStringすれば、システムの標準的な形式の日時のテキストが得られます。それを行っているのがこの部分です。

System.out.println(cal.getTime());

Calendarの「getTime」は、CalendarからDateインスタンスを取り出すメソッドです。取り出したDateをprintlnで出力させていたのですね。printlnは、引数にオブジェクトが指定された場合、そのtoStringした値を出力するようになっています(知ってました?)。これで、とりあえず日時を表示することができました。
  • 前のページへ
  • 1
  • 2
  • 3
  • 5
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます