■ 国際化対応フォーマット、パターン文字フォーマットで日付を出力する方法

■ 国際化対応フォーマット、パターン文字フォーマットで日付を出力する方法

 1.国際化対応フォーマットについて  DateFormatを利用すると容易に日付をフォーマットすることができます。
  国際化フォーマットは、各国の表記にあわせて日付を出力する方法で、日本はもちろんアメリカ、
  ドイツ、フランスなど外国で使用している日付の表示を行うことができます。

  (1) 年月日フォーマット
     getDateInstance(【表示形式】,【指定国】);

  (2) 時刻フォーマット
     getTimeInstance(【表示形式】,【指定国】);

  (3) 年月日と時刻フォーマット
     getDateTimeInstance(【年月日の表示形式】,【時刻の表示形式】,【指定国】);

  【表示形式】には、“FULL”、“MEDIUM”、“SHORT”のいずれかをセットします。
  【指定国】には、“JAPAN”、“US”などの国を指定します。

  注1 指定したLocaleで、?文字が出力された場合は、対応するフォントがインストールされていません。
     どうしても表示したい場合はフォントをインストールして下さい。

 2.パターン文字フォーマットについて  SimpleDateFormatを利用することにより、任意の日付にフォーマットすることができます。
  a~z、A~Zなどはパターン文字と認識されるため、無効な値を設定するとエラーになります。
  また、大文字小文字で意味が異なるので注意してください。

パターン文字一覧
タイムゾーンz西暦yMd曜日E
24時間H12時間hmsミリ秒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日 月曜日 (^_-)-☆
-以上-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值