Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 > Java基本 > 日付・時刻 −3.SimpleDateFormatクラス
更新日:2006/3/25
日付・時刻−3.SimpleDateFormatクラス
このページでは日付・時刻のフォーマット表示に使用するSimpleDateFormatクラスについて解説します。ロケール、フォーマットパターンの指定により、様々なフォーマットで日付・時刻を表示できるようになります。
コンストラクタ
SimpleDateFormatクラスのコンストラクタについて解説します。
コンストラクタ
説明
SimpledateFormat( )
デフォルトのロケール、パターン、日付フォーマット記号を持つ、オブジェクトを生成します。
SimpledateFormat(String)
指定されたパターン、デフォルトのロケール、日付フォーマット記号を持つ、オブジェクトを生成します。
SimpledateFormat(String, DateFormatSymbols)
指定されたパターン、日付フォーマット記号を持つ、オブジェクトを生成します。
SimpledateFormat(String, Locale)
指定されたパターン、ロケール、デフォルトの日付フォーマット記号を持つ、オブジェクトを生成します。
【例1】
//フォーマットパターンを指定して、SimpleDateFormatオブジェクトsdf1を生成
//します。
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd");

//フォーマットパターン、ロケールを指定して、SimpleDateFormatオブジェクト
//sdf1を生成します。
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MM/dd", Locale.US);
パターン
SimpleDateFormatクラスで用意されているパターン文字について解説します。
文字
説明
G
紀元
AD
y
1996, 96
M
July, Jul, 07
w
年における週
27
W
月における週
2
D
年における日
189
d
月における日
10
F
月における曜日
2
E
曜日
Tuesday, Tue
a
午前/午後
PM
H
一日における時(0〜23)
0
k
一日における時(1〜24)
24
K
午前/午後の時(0〜11)
0
h
午前/午後の時(1〜12)
12
m
30
s
55
S
ミリ秒
978
z
タイムゾーン
Pacific Standard Time, PST, GMT-08:00
Z
タイムゾーン
-0800
パターン内に任意の文字列を入れたい場合は、任意の文字列を' 'で囲みます。' 'で囲まれた文字列はパターン文字と認識されません。
パターン文字の連続する数によりフォーマットが決まります。yyの場合は年を2桁で表します。yyyyの場合は年を4桁で表します。
年を2桁で表す場合、オブジェクトが生成された年の前80年以内、後20年以内の範囲の年が認識されます。2000年にオブジェクトを生成した場合、21年は1921年と解釈され、15年は2015年と解釈されます。
月を表すパターン文字において、パターン文字の連続が3文字以上(MMM)の場合は、月をテキスト(July, Jul)で表示します。2文字以内(MM)の場合は、数字(07)で表します。

APIドキュメントに記載されている、パターン例を以下に記載します
パターン
表示例
"yyyy.MM.dd G 'at' HH:mm:ss z"
2001.07.04 AD at 12:08:56 PDT
"EEE, MMM d, ''yy"
Wed, Jul 4, '01
"h:mm a"
12:08 PM
"hh 'o''clock' a, zzzz"
12 o'clock PM, Pacific Daylight Time
"K:mm a, z"
0:08 PM, PDT
"yyyyy.MMMMM.dd GGG hh:mm aaa"
02001.July.04 AD 12:08 PM
"EEE, d MMM yyyy HH:mm:ss Z"
Wed, 4 Jul 2001 12:08:56 -0700
"yyMMddHHmmssZ"
010704120856-0700
メソッド
SimpleDateFormatクラスで用意されている主なメソッドについて解説します。
戻り型
メソッド
説明
void
applyPattern(String)
引数に指定されたパターンをオブジェクトに適用します。
String
format(Date)
引数に指定されたDateをSimpleDateFormatオブジェクトのパターンに従い、フォーマットします。
Date
parse(String)
引数に指定された文字列を解釈して、Dateオブジェクトを返します。
【例2】SimpleDateFormatクラスを使用して、Dateオブジェクトをフォーマットして表示するプログラムを作成します。
import java.util.*;
import java.text.*;

class ExDate3 {
  public static void main(String[] args) {
    Date date1 = new Date();  //(1)Dateオブジェクトを生成

    //(2)SimpleDateFormatオブジェクトを生成
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy'年'MM'月'dd'日'");
    System.out.println(sdf1.format(date1));  //(3)Dateオブジェクトを表示

    sdf1.applyPattern("yyyy/MM/dd");  //(4)フォーマットパターンを変更
    System.out.println(sdf1.format(date1));  //(5)Dateオブジェクトを表示
  }
}
【解説2】
(1). 現在の日時を保持したDateオブジェクトdate1を生成します。
(2). フォーマットパターンを指定して、SimpleDateFormatオブジェクトsdf1を生成します。
(3). formatメソッドを使用し、指定したフォーマットパターンで現在の日時を表示します。
(4). applyPatternメソッドを使用し、フォーマットパターンを変更します。
(5). formatメソッドを使用し、変更したフォーマットパターンで現在の日時を表示します。
【実行結果2】

C:\source>javac ExDate3.java

C:\source>java ExDate3
2004年05月02日
2004/05/02

C:\source>

日付・時刻
1.Dateクラス
2.Calendarクラス
3.SimpleDateFormatクラス
4.TimeZoneクラス



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道