![]() | Today | サンプルソース |
|---|---|---|
今日の日付を表示する方法を3パターン紹介します。 Calendarクラス、SimpleDateFormatクラス、printfメソッド。この機会にJavaの日付処理を整理しておこう。 |
Today.java |
/**
* 愛のJava256本ノック for Java 5.0
* Javaサンプルソース ver0.2C "Today"
* Today.java 「今日の日付を表示する」
*
* 2005/09/23 制作:安永ノリカズ
*
* 【コンパイル&実行方法】
* >javac Today.java
* >java Today
* 【キーワード】
* java.util.Dateクラス, java.util.Formatterクラス, fromat(書式化する),
* ファクトリ(factory)メソッド
* 【試してみよう】
* それぞれの手法で、年や時間も表示する。
*
*/
import java.lang.String;
import java.lang.System;
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class Today {
public static void main(String[] A00) {
Calendar L00 = Calendar.getInstance();
// 日付曜日を一つずつ取得
String[] L01 = {"日", "月", "火", "水", "木", "金", "土"};
int L02 = L00.get(Calendar.MONTH) + 1;
int L03 = L00.get(Calendar.DAY_OF_MONTH);
int L04 = L00.get(Calendar.DAY_OF_WEEK) - 1;
System.out.printf("今日は%02d月%02d日%s曜日です。%n", L02, L03, L01[L04]);
// DateFormatを利用
SimpleDateFormat L05 = new SimpleDateFormat("MM月dd日E曜日");
System.out.printf("今日は%sです。%n", L05.format(L00.getTime()));
// 一つのカレンダーオブジェクトから取得
System.out.printf("今日は%1$tm月%1$td日%1$tAです。%n", L00);
}
}
/* ■ クラスの外でちょっと一言 ■
人それぞれ、どうしても覚えられないことってあると思うんですが、僕の場合、
Javaで日付を表示する方法をすぐに忘れてしまいます。参考書の同じ部分を開い
ては、「前もここ見たな」と毎回つぶやいてる次第。
Calendarから日付を取り出す方法と、SimpleDateFormatで書式化する方法がある
んですが、そのどちらもが、多分に混乱しがちな要素を含んでるんですよね。月
は0から始まるのに、曜日は1からだったり、定数フィールドやら、パターン文字
列がいっぱいあったり……。
そんな僕の気持ちを知ってか知らずか、J2SE5.0からは、Calendarをprintfで
フォーマットするという、新たな方法が加わりました。もう、全部覚えるの無
理。あきらめます。
このサンプルではその3つの方法で同じ表示を実現しています。単純に出力する
ときはprintf、文字列として整形するときはSimpleDateFormatか、C言語でいう
sprintfにあたるString.formatメソッド、日付を数値として扱いたいときは
Calendarという使い分けになるでしょうね。
*/