 |
 |
●日付・時刻−3.SimpleDateFormatクラス |
|
| このページでは日付・時刻のフォーマット表示に使用するSimpleDateFormatクラスについて解説します。ロケール、フォーマットパターンの指定により、様々なフォーマットで日付・時刻を表示できるようになります。
|
コンストラクタ |
| SimpleDateFormatクラスのコンストラクタについて解説します。 |
|
コンストラクタ
|
説明
|
|
SimpledateFormat(
)
|
デフォルトのロケール、パターン、日付フォーマット記号を持つ、オブジェクトを生成します。
|
|
SimpledateFormat(String)
|
指定されたパターン、デフォルトのロケール、日付フォーマット記号を持つ、オブジェクトを生成します。
|
|
SimpledateFormat(String,
DateFormatSymbols)
|
指定されたパターン、日付フォーマット記号を持つ、オブジェクトを生成します。
|
|
SimpledateFormat(String,
Locale)
|
指定されたパターン、ロケール、デフォルトの日付フォーマット記号を持つ、オブジェクトを生成します。
|
|
//フォーマットパターンを指定して、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メソッドを使用し、変更したフォーマットパターンで現在の日時を表示します。 |
|
C:\source>javac ExDate3.java
C:\source>java ExDate3
2004年05月02日
2004/05/02
C:\source>
|
|
|
日付・時刻 |
|
|
| 3.SimpleDateFormatクラス |
|
|
|
 |
|
 |
 |