■ 国際化対応フォーマット、パターン文字フォーマットで日付を出力する方法
1.国際化対応フォーマットについて DateFormatを利用すると容易に日付をフォーマットすることができます。
国際化フォーマットは、各国の表記にあわせて日付を出力する方法で、日本はもちろんアメリカ、
ドイツ、フランスなど外国で使用している日付の表示を行うことができます。
(1) 年月日フォーマット
getDateInstance(【表示形式】,【指定国】);
(2) 時刻フォーマット
getTimeInstance(【表示形式】,【指定国】);
(3) 年月日と時刻フォーマット
getDateTimeInstance(【年月日の表示形式】,【時刻の表示形式】,【指定国】);
【表示形式】には、“FULL”、“MEDIUM”、“SHORT”のいずれかをセットします。
【指定国】には、“JAPAN”、“US”などの国を指定します。
注1 指定したLocaleで、?文字が出力された場合は、対応するフォントがインストールされていません。
どうしても表示したい場合はフォントをインストールして下さい。
2.パターン文字フォーマットについて SimpleDateFormatを利用することにより、任意の日付にフォーマットすることができます。
a~z、A~Zなどはパターン文字と認識されるため、無効な値を設定するとエラーになります。
また、大文字小文字で意味が異なるので注意してください。
■サンプルソース
import java.io.*;
import java.text.*;
import java.util.*;
import java.util.Date;
class DateFormatSample {
public static void main (String args[]) {
// 日付を取得
Date date = new Date();
DateFormat dateformat;
System.out.println("-----------------------------------------------------------------");
System.out.println("設定なしの日付 |" + date);
System.out.println("-----------------------------------------------------------------");
System.out.println("引数1 | 引数2|結果");
System.out.println("-----------------------------------------------------------------");
//----------------------------------------------------------------------------//
// 年月日フォーマット
// getDateInstance(引数1,引数2);
//----------------------------------------------------------------------------//
dateformat = DateFormat.getDateInstance(DateFormat.FULL, Locale.JAPAN);
System.out.println("FULL | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.JAPAN);
System.out.println("MEDIUM | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN);
System.out.println("SHORT | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
System.out.println("FULL | US |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.US);
System.out.println("MEDIUM | US |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
System.out.println("SHORT | US |" + dateformat.format(date));
//----------------------------------------------------------------------------//
// 時刻フォーマット
// getTimeInstance(引数1,引数2);
//----------------------------------------------------------------------------//
System.out.println("-----------------------------------------------------------------");
dateformat = DateFormat.getTimeInstance(DateFormat.FULL, Locale.JAPAN);
System.out.println("FULL | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.JAPAN);
System.out.println("MEDIUM | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.JAPAN);
System.out.println("SHORT | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.FULL, Locale.US);
System.out.println("FULL | US |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.US);
System.out.println("MEDIUM | US |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.US);
System.out.println("SHORT | US |" + dateformat.format(date));
//----------------------------------------------------------------------------//
// 年月日と時刻フォーマット
// getDateTimeInstance(引数1,引数2,引数3);
//----------------------------------------------------------------------------//
System.out.println("-----------------------------------------------------------------");
dateformat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.JAPAN);
System.out.println("FULL | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.JAPAN);
System.out.println("MEDIUM | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.JAPAN);
System.out.println("SHORT | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.US);
System.out.println("FULL | US |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US);
System.out.println("MEDIUM | US |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.US);
System.out.println("SHORT | US |" + dateformat.format(date));
//----------------------------------------------------------------------------//
// パターン文字フォーマット
// SimpleDateFormat("パターン文字");
//----------------------------------------------------------------------------//
System.out.println("-----------------------------------------------------------------");
System.out.println("パターン文字フォーマット");
System.out.println("-----------------------------------------------------------------");
dateformat = new SimpleDateFormat("yyyyMMddHHmmss");
System.out.println("yyyyMMddHHmmss |" + dateformat.format(date));
dateformat = new SimpleDateFormat("yyyy/MM/dd (EE) HH:mm:ss.SSSSS");
System.out.println("yyyy/MM/dd (EE) HH:mm:ss.SSSSS|" + dateformat.format(date));
System.out.println("-----------------------------------------------------------------");
// 分秒を12:34に固定した場合
dateformat = new SimpleDateFormat("yyyyMMddHH1234");
System.out.println("yyyyMMddHH1234 |" + dateformat.format(date));
dateformat = new SimpleDateFormat("yyyy/MM/dd (EE) HH:12:34.SSSSS");
System.out.println("yyyy/MM/dd (EE) HH:12:34.SSSSS|" + dateformat.format(date));
System.out.println("-----------------------------------------------------------------");
// ちなみに、こんな風にもできるんです。
dateformat = new SimpleDateFormat("yyyy年MM月dd日 EE曜日 (^_-)-☆");
System.out.println("yyyy年MM月dd日 EE曜日 (^_-)-☆|" + dateformat.format(date));
}
}
■サンプルの実行結果
-----------------------------------------------------------------
設定なしの日付 |Mon Jan 13 18:17:36 JST 2003
-----------------------------------------------------------------
引数1 | 引数2|結果
-----------------------------------------------------------------
FULL | JAPAN |2003年1月13日
MEDIUM | JAPAN |2003/01/13
SHORT | JAPAN |03/01/13
FULL | US |Monday, January 13, 2003
MEDIUM | US |Jan 13, 2003
SHORT | US |1/13/03
-----------------------------------------------------------------
FULL | JAPAN |18時17分36秒JST
MEDIUM | JAPAN |18:17:36
SHORT | JAPAN |18:17
FULL | US |6:17:36 PM JST
MEDIUM | US |6:17:36 PM
SHORT | US |6:17 PM
-----------------------------------------------------------------
FULL | JAPAN |2003年1月13日 18時17分36秒JST
MEDIUM | JAPAN |2003/01/13 18:17:36
SHORT | JAPAN |03/01/13 18:17
FULL | US |Monday, January 13, 2003 6:17:36 PM JST
MEDIUM | US |Jan 13, 2003 6:17:36 PM
SHORT | US |1/13/03 6:17 PM
-----------------------------------------------------------------
パターン文字フォーマット
-----------------------------------------------------------------
yyyyMMddHHmmss |20030113181736
yyyy/MM/dd (EE) HH:mm:ss.SSSSS|2003/01/13 (月) 18:17:36.00434
-----------------------------------------------------------------
yyyyMMddHH1234 |20030113181234
yyyy/MM/dd (EE) HH:12:34.SSSSS|2003/01/13 (月) 18:12:34.00434
-----------------------------------------------------------------
yyyy年MM月dd日 EE曜日 (^_-)-☆|2003年01月13日 月曜日 (^_-)-☆
-以上-
1.国際化対応フォーマットについて DateFormatを利用すると容易に日付をフォーマットすることができます。
国際化フォーマットは、各国の表記にあわせて日付を出力する方法で、日本はもちろんアメリカ、
ドイツ、フランスなど外国で使用している日付の表示を行うことができます。
(1) 年月日フォーマット
getDateInstance(【表示形式】,【指定国】);
(2) 時刻フォーマット
getTimeInstance(【表示形式】,【指定国】);
(3) 年月日と時刻フォーマット
getDateTimeInstance(【年月日の表示形式】,【時刻の表示形式】,【指定国】);
【表示形式】には、“FULL”、“MEDIUM”、“SHORT”のいずれかをセットします。
【指定国】には、“JAPAN”、“US”などの国を指定します。
注1 指定したLocaleで、?文字が出力された場合は、対応するフォントがインストールされていません。
どうしても表示したい場合はフォントをインストールして下さい。
2.パターン文字フォーマットについて SimpleDateFormatを利用することにより、任意の日付にフォーマットすることができます。
a~z、A~Zなどはパターン文字と認識されるため、無効な値を設定するとエラーになります。
また、大文字小文字で意味が異なるので注意してください。
パターン文字一覧 | |||||||||
---|---|---|---|---|---|---|---|---|---|
タイムゾーン | z | 西暦 | y | 月 | M | 日 | d | 曜日 | E |
24時間 | H | 12時間 | h | 分 | m | 秒 | s | ミリ秒 | S |
■サンプルソース
import java.io.*;
import java.text.*;
import java.util.*;
import java.util.Date;
class DateFormatSample {
public static void main (String args[]) {
// 日付を取得
Date date = new Date();
DateFormat dateformat;
System.out.println("-----------------------------------------------------------------");
System.out.println("設定なしの日付 |" + date);
System.out.println("-----------------------------------------------------------------");
System.out.println("引数1 | 引数2|結果");
System.out.println("-----------------------------------------------------------------");
//----------------------------------------------------------------------------//
// 年月日フォーマット
// getDateInstance(引数1,引数2);
//----------------------------------------------------------------------------//
dateformat = DateFormat.getDateInstance(DateFormat.FULL, Locale.JAPAN);
System.out.println("FULL | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.JAPAN);
System.out.println("MEDIUM | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.JAPAN);
System.out.println("SHORT | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.FULL, Locale.US);
System.out.println("FULL | US |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.MEDIUM, Locale.US);
System.out.println("MEDIUM | US |" + dateformat.format(date));
dateformat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
System.out.println("SHORT | US |" + dateformat.format(date));
//----------------------------------------------------------------------------//
// 時刻フォーマット
// getTimeInstance(引数1,引数2);
//----------------------------------------------------------------------------//
System.out.println("-----------------------------------------------------------------");
dateformat = DateFormat.getTimeInstance(DateFormat.FULL, Locale.JAPAN);
System.out.println("FULL | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.JAPAN);
System.out.println("MEDIUM | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.JAPAN);
System.out.println("SHORT | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.FULL, Locale.US);
System.out.println("FULL | US |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.US);
System.out.println("MEDIUM | US |" + dateformat.format(date));
dateformat = DateFormat.getTimeInstance(DateFormat.SHORT, Locale.US);
System.out.println("SHORT | US |" + dateformat.format(date));
//----------------------------------------------------------------------------//
// 年月日と時刻フォーマット
// getDateTimeInstance(引数1,引数2,引数3);
//----------------------------------------------------------------------------//
System.out.println("-----------------------------------------------------------------");
dateformat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.JAPAN);
System.out.println("FULL | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.JAPAN);
System.out.println("MEDIUM | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.JAPAN);
System.out.println("SHORT | JAPAN |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.US);
System.out.println("FULL | US |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.US);
System.out.println("MEDIUM | US |" + dateformat.format(date));
dateformat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, Locale.US);
System.out.println("SHORT | US |" + dateformat.format(date));
//----------------------------------------------------------------------------//
// パターン文字フォーマット
// SimpleDateFormat("パターン文字");
//----------------------------------------------------------------------------//
System.out.println("-----------------------------------------------------------------");
System.out.println("パターン文字フォーマット");
System.out.println("-----------------------------------------------------------------");
dateformat = new SimpleDateFormat("yyyyMMddHHmmss");
System.out.println("yyyyMMddHHmmss |" + dateformat.format(date));
dateformat = new SimpleDateFormat("yyyy/MM/dd (EE) HH:mm:ss.SSSSS");
System.out.println("yyyy/MM/dd (EE) HH:mm:ss.SSSSS|" + dateformat.format(date));
System.out.println("-----------------------------------------------------------------");
// 分秒を12:34に固定した場合
dateformat = new SimpleDateFormat("yyyyMMddHH1234");
System.out.println("yyyyMMddHH1234 |" + dateformat.format(date));
dateformat = new SimpleDateFormat("yyyy/MM/dd (EE) HH:12:34.SSSSS");
System.out.println("yyyy/MM/dd (EE) HH:12:34.SSSSS|" + dateformat.format(date));
System.out.println("-----------------------------------------------------------------");
// ちなみに、こんな風にもできるんです。
dateformat = new SimpleDateFormat("yyyy年MM月dd日 EE曜日 (^_-)-☆");
System.out.println("yyyy年MM月dd日 EE曜日 (^_-)-☆|" + dateformat.format(date));
}
}
■サンプルの実行結果
-----------------------------------------------------------------
設定なしの日付 |Mon Jan 13 18:17:36 JST 2003
-----------------------------------------------------------------
引数1 | 引数2|結果
-----------------------------------------------------------------
FULL | JAPAN |2003年1月13日
MEDIUM | JAPAN |2003/01/13
SHORT | JAPAN |03/01/13
FULL | US |Monday, January 13, 2003
MEDIUM | US |Jan 13, 2003
SHORT | US |1/13/03
-----------------------------------------------------------------
FULL | JAPAN |18時17分36秒JST
MEDIUM | JAPAN |18:17:36
SHORT | JAPAN |18:17
FULL | US |6:17:36 PM JST
MEDIUM | US |6:17:36 PM
SHORT | US |6:17 PM
-----------------------------------------------------------------
FULL | JAPAN |2003年1月13日 18時17分36秒JST
MEDIUM | JAPAN |2003/01/13 18:17:36
SHORT | JAPAN |03/01/13 18:17
FULL | US |Monday, January 13, 2003 6:17:36 PM JST
MEDIUM | US |Jan 13, 2003 6:17:36 PM
SHORT | US |1/13/03 6:17 PM
-----------------------------------------------------------------
パターン文字フォーマット
-----------------------------------------------------------------
yyyyMMddHHmmss |20030113181736
yyyy/MM/dd (EE) HH:mm:ss.SSSSS|2003/01/13 (月) 18:17:36.00434
-----------------------------------------------------------------
yyyyMMddHH1234 |20030113181234
yyyy/MM/dd (EE) HH:12:34.SSSSS|2003/01/13 (月) 18:12:34.00434
-----------------------------------------------------------------
yyyy年MM月dd日 EE曜日 (^_-)-☆|2003年01月13日 月曜日 (^_-)-☆
-以上-