JAvaでのDateとDateFormatのフォーマット出力
一、DateFormat
getDateInstanceを使用して、国/地域の標準日付フォーマットを取得します.他にもいくつかの静的工場法が提供されている.gettimeInstanceを使用して、国/地域の時間フォーマットを取得します.getDateTimeInstanceを使用して、日付と時刻のフォーマットを取得します.これらのファクトリメソッドには、SHORTからMEDIUMからLONG、FULLまで、さまざまなオプションを入力して結果の長さを制御できます.正確な結果は言語環境によって異なりますが、通常は次のようになります. SHORTは完全に数字で、例えば12.13.52あるいは3:30 pm MEDIUMはJan 12,1952 のように長い. LONGはJanuary 12,1952または3:30:32 pm のようにより長い FULLは、Tuesday、April 12、1952 AD、または3:30:42 pm PSTなどの完全な指定です.
必要に応じて、フォーマットにタイムゾーンを設定することもできます.フォーマットまたは解析により多くの制御を加えたい場合(またはユーザにより多くの制御を与える場合)、ファクトリメソッドから取得したDateFormatをSimpleDateFormatに強制的に変換してみてください.これは多くの国に適しています.ただし、特殊なフォーマットに遭遇しないようにtryコードブロックに入れることを覚えておいてください.
二、 SimpleDateFormat
次のパターンのアルファベットが定義されています(他のすべての文字
文字
日付または時刻要素
表示
例
Eraフラグ
Text
年
Year
年中の月
Month
年間の週数
Number
月の週数
Number
年の日数
Number
月の日数
Number
月の中の曜日
Number
曜日の日数
Text
Am/pmマーク
Text
1日の時間(0~23)
Number
1日の時間(1~24)
Number
am/pmにおける時間数(0-11)
Number
am/pmにおける時間数(1-12)
Number
時間の分
Number
分の秒数
Number
ミリ秒数
Number
タイムゾーン
General time zone
タイムゾーン
RFC 822 time zone
インスタンスパラメータ
日付モードと時刻モード
結果
コード結果
一般的な方法
parse
文字列のテキストを解析し、生成
このメソッドはテキストを解析しようとします.解析に成功した場合は、解析した日付を返します.更新された
指定者:
クラス#クラス#
パラメータ:
戻り値:
文字列から解析する
放出:
関連項目:
parse
文字列のテキストを解析し、生成
この方法は、
指定者:
クラス#クラス#
パラメータ:
戻り値:
文字列から解析する
放出:
関連項目:
format
Dateを日付/時間文字列にフォーマットします.
パラメータ:
戻り値:
フォーマットされた時間文字列.
java.text.DateFormat
getDateInstanceを使用して、国/地域の標準日付フォーマットを取得します.他にもいくつかの静的工場法が提供されている.gettimeInstanceを使用して、国/地域の時間フォーマットを取得します.getDateTimeInstanceを使用して、日付と時刻のフォーマットを取得します.これらのファクトリメソッドには、SHORTからMEDIUMからLONG、FULLまで、さまざまなオプションを入力して結果の長さを制御できます.正確な結果は言語環境によって異なりますが、通常は次のようになります.
必要に応じて、フォーマットにタイムゾーンを設定することもできます.フォーマットまたは解析により多くの制御を加えたい場合(またはユーザにより多くの制御を与える場合)、ファクトリメソッドから取得したDateFormatをSimpleDateFormatに強制的に変換してみてください.これは多くの国に適しています.ただし、特殊なフォーマットに遭遇しないようにtryコードブロックに入れることを覚えておいてください.
Date date = new Date();
// , 2017-4-16
DateFormat df1 = DateFormat.getDateInstance();
System.out.println(df1.format(date));
// 2017-4-16 12:43:37
DateFormat df2 = DateFormat.getDateTimeInstance();
System.out.println(df2.format(date));
// 12:43:37
DateFormat df3 = DateFormat.getTimeInstance();
System.out.println(df3.format(date));
// , , , ( )
//2017 4 16 12 43 37 CST
DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
System.out.println(df4.format(date));
// , , ( )
//2017 4 16 12 43 37
DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
System.out.println(df5.format(date));
// , , ( )
//2017 4 16 12 43 37
DateFormat df5_1 = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.CHINA);
System.out.println(df5_1.format(date));
// , , ( ) 17-4-16 12:43
DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
System.out.println(df6.format(date));
// , ( ) 2017-4-16 12:43:37
DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
System.out.println(df7.format(date));
二、 SimpleDateFormat
java.text.SimpleDateFormat
次のパターンのアルファベットが定義されています(他のすべての文字
'A'
~'Z'
、'a'
~'z'
が保持されます).文字
日付または時刻要素
表示
例
G
Eraフラグ
Text
AD
y
年
Year
1996
; 96
M
年中の月
Month
July
; Jul
; 07
w
年間の週数
Number
27
W
月の週数
Number
2
D
年の日数
Number
189
d
月の日数
Number
10
F
月の中の曜日
Number
2
E
曜日の日数
Text
Tuesday
; Tue
a
Am/pmマーク
Text
PM
H
1日の時間(0~23)
Number
0
k
1日の時間(1~24)
Number
24
K
am/pmにおける時間数(0-11)
Number
0
h
am/pmにおける時間数(1-12)
Number
12
m
時間の分
Number
30
s
分の秒数
Number
55
S
ミリ秒数
Number
978
z
タイムゾーン
General time zone
Pacific Standard Time
; PST
; GMT-08:00
Z
タイムゾーン
RFC 822 time zone
-0800
インスタンスパラメータ
日付モードと時刻モード
結果
"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
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
2001-07-04T12:08:56.235-0700
コード結果
Date d = new Date();
/* h 1-12 : 2017-04-16 01:01:22 */
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String s = format1.format(d);
System.out.println(s);
/* H 0-23 :2017-04-16 13:01:22*/
DateFormat format2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
s = format2.format(d);
System.out.println(s);
/* K 0-11 :2017-04-16 01:01:22 */
DateFormat format3 = new SimpleDateFormat("yyyy-MM-dd KK:mm:ss");
s = format3.format(d);
System.out.println(s);
/* k 1-24 : 2017-04-16 13:01:22 */
DateFormat format4 = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
s = format4.format(d);
System.out.println(s);
/* : 20170416010122 */
DateFormat format5 = new SimpleDateFormat("yyyyMMddhhmmss");
s = format5.format(d);
System.out.println(s);
一般的な方法
parse
public Date parse(String texts)
文字列のテキストを解析し、生成
Date
. このメソッドはテキストを解析しようとします.解析に成功した場合は、解析した日付を返します.更新された
pos
は、このメソッドが次回呼び出される開始点を示すために使用することができる.エラーが発生しnullを返します.指定者:
クラス#クラス#
DateFormat
のparse
パラメータ:
text
-一部を解析すべきString
.
戻り値:
文字列から解析する
Date
.エラーが発生した場合はnullを返します.放出:
NullPointerException
-text
はnullです.関連項目:
DateFormat.setLenient(boolean)
parse
public Date parse(String text,
ParsePosition pos)
文字列のテキストを解析し、生成
Date
. この方法は、
pos
によって与えられたインデックスから始まるテキストを解析しようとする.解析に成功した場合は、pos
のインデックスを最後の文字の後のインデックスに更新し(文字列の最後までのすべての文字を解析する必要はありません)、解析の日付を返します.更新されたpos
は、このメソッドが次回呼び出される開始点を示すために使用することができる.エラーが発生した場合、pos
のインデックスは変更されず、pos
のエラーインデックスをエラーが発生した文字インデックスに設定しnullを返します.指定者:
クラス#クラス#
DateFormat
のparse
パラメータ:
text
-一部を解析すべきString
. pos
-前述のインデックスおよびエラーインデックス情報を有するParsePosition
オブジェクト.戻り値:
文字列から解析する
Date
.エラーが発生した場合はnullを返します.放出:
NullPointerException
-text
またはpos
はnullです.関連項目:
DateFormat.setLenient(boolean)
format
public final String format(Date date)
Dateを日付/時間文字列にフォーマットします.
パラメータ:
date
-時間文字列にフォーマットする時間値.戻り値:
フォーマットされた時間文字列.