「日付の扱いについて少し話したいと思っていたことを思い出しました。」
「Java には Date クラスがあり、そのクラスを使用して日付を操作できることはすでに説明しました。」
「うーん。伊達クラスはしばらく時代遅れですね。」
「代わりに、現在の日付を返す getTime() メソッドを持つ Calendar クラスを使用することをお勧めします。」
「これは通常作成される Calendar オブジェクトです。」
Calendar cal = Calendar.getInstance();
「このメソッドを呼び出すと、コンピュータの設定に基づいて正しいカレンダーが作成されます。」
「『正しい』カレンダーとは? ということは、いくつかあるということですか?」
「そうです。そうですね、『関連性がある』と言ったほうが正確でしょう。実際、地球には 1 つではなく、多くの暦があります。それらのほぼすべてが、何らかの宗教または国に関連付けられています。」
お住まいの国によって年が異なる場合があります。
「最も一般的なカレンダーの例を次に示します。」
カレンダークラス | カレンダー名 |
---|---|
グレゴリオ暦 | キリスト教のグレゴリオ暦 |
仏教カレンダー | 仏暦 |
日本語皇室カレンダー | 大日本帝国暦 |
中国暦やイスラム暦などもあります。
"そうか。"
「現在の日付を取得するには、次のようなコードを記述する必要があります。」
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
「Calendar クラスには、日付と時刻に関する情報をすぐに取得できるメソッドが多数あります。」
コード | コメント |
---|---|
|
元号 年 月 日 曜日 (月、火、水、…) 時分 秒 _ |
「場合によっては、入手可能な情報の一部だけを取得するだけで十分な場合があります。たとえば、現在の年や曜日などです。」
「しかし、単に日付を正しい形式で表示する必要がある場合もあります。」
「たとえば、ログ ファイルや他の場所にあります。」
「あるいは、ユーザーがカスタマイズできるフォーマットを作成します。その場合はどうしますか?」
「これには特別なクラスもあります。SimpleDateFormatクラスは、あなたが説明したタスクに最適です。」
Calendar calendar = Calendar.getInstance();
DateFormat formatter = new SimpleDateFormat("MM-DD-YY");
String message = formatter.format(calendar.getTime());
「ああ、覚えています。SimpleDateFormatについてはすでにいくつか説明していただきましたが、正直あまり覚えていません。」
「すべては非常に簡単です。SimpleDateFormat オブジェクトを作成し、取得したい日付パターンを渡します。次に、format メソッドを呼び出すと、渡された日付が目的の形式で得られます。」
「面白そうですね。もっと詳しく知りたいです。」
「さあ、詳細です。日付パターンで使用できる文字の一部を次に示します。」
手紙 | 説明 |
---|---|
G | 時代(西暦または紀元前)に置き換えます |
y | 年ごとに置き換えられます |
M | 月ごとに入れ替わります |
w | 年の週数 |
W | 月の週数 |
D | 年間の日数 |
d | 月の日 |
F | 月の曜日 |
E | 曜日 |
ある | 午前/午後(正午の前または後) |
H | 24 時間形式の時間 (0 ~ 23) |
k | 24 時間形式の時間 (1 ~ 24) |
K | 12 時間形式の時間 (0 ~ 11) |
h | 12 時間形式の時間 (1 ~ 12) |
メートル | 分 |
s | 秒 |
S | ミリ秒 |
z | タイムゾーンは次のようにフォーマットされます: 太平洋標準時、PST |
Z | タイムゾーンは次のようにフォーマットされます: -0800/td> |
「すごいですね! 必要なものはこれですべてです。」
「これらの手紙を繰り返すことに関連するニュアンスがまだいくつかあります。」
「YY と書くと、西暦の下 2 桁が取得されます。YYYY と書くと、西暦の 4 桁すべてが取得されます。」
「月についても若干複雑です。MMは月の番号です。MMM は月の 3 文字の省略形です。つまり、Jan、Feb、Mar、Apr、May などです。MMMM は月の正式名を表します」。」
「曜日全体 (EEEE を使用) または最初の 2 文字だけ (EE を使用) を表示することもできます。」
「ありがとう、リシ。この SimpleDateFormat クラスは本当に便利です。今わかりました。」
「楽しんで使ってください!そして頑張ってください!」