Class I18NUtil

java.lang.Object
nablarch.core.util.I18NUtil

@Published public final class I18NUtil extends Object
国際化に使用するユーティリティクラス。
Author:
Koichi Asano
  • Method Details

    • createLocale

      public static Locale createLocale(String localeExpression)
      ロケール表現からロケールオブジェクトを作成する。

      localeExpressionは以下のシンタックスに従って指定する。

       ([a-z]{2})                    // 言語コード(ISO-639)
           (?:_([A-Z]{2}|)           // 国コード(ISO-3166)
               (?:_([A-Za-z0-9]+))?  // 補助コード
           )?
       
      ロケール表現の例
      • ja
      • ja_JP
      • ja_JP_variant
      Parameters:
      localeExpression - 文字列によるロケールの表現
      Returns:
      作成したロケールオブジェクト
      Throws:
      IllegalArgumentException - localeExpressionがシンタックスに適合しない場合
      See Also:
    • formatDateTime

      public static String formatDateTime(Date date, String format)
      フォーマットを指定して日時を文字列に変換する。

      指定するフォーマットはSimpleDateFormatの仕様に準拠すること。

      このメソッドはformatDateTime(Date, String, Locale, TimeZone)}を呼び出す。 ロケール及びタイムゾーンは、ThreadContextから取得する。 取得できなかった場合、デフォルトのロケール及びタイムゾーンを使用する。

      Parameters:
      date - 日時(null不可)
      format - フォーマット(null不可)
      Returns:
      変換した値
      See Also:
    • formatDateTime

      public static String formatDateTime(Date date, String format, Locale locale)
      フォーマットと言語を指定して日時を文字列に変換する。

      指定するフォーマットはSimpleDateFormatの仕様に準拠すること。

      このメソッドはformatDateTime(Date, String, Locale, TimeZone) }を呼び出す。 タイムゾーンは、ThreadContextから取得する。 取得できなかった場合、デフォルトのタイムゾーンを使用する。

      Parameters:
      date - 日時(null不可)
      format - フォーマット(null不可)
      locale - ロケール(null不可)
      Returns:
      変換した値
      See Also:
    • formatDateTime

      public static String formatDateTime(Date date, String format, Locale locale, TimeZone timeZone)
      フォーマット、言語、タイムゾーンを指定して日時を文字列に変換する。

      指定するフォーマットはSimpleDateFormatの仕様に準拠すること。

      例:

       TimeZone timeZone = TimeZone.getTimeZone("Asia/Tokyo");
       Date date = Calendar.getInstance(timeZone).getTime(); //--> 2011/09/09 17:22:48
       String format = "yyyy/MM/dd HH:mm:ss";
       
       I18NUtil.formatDateTime(date, format, timeZone); //--> "2011/09/09 17:22:48"
       
       timeZone = TimeZone.getTimeZone("Europe/Madrid");
       I18NUtil.formatDateTime(date, format, timeZone); //--> "2011/09/09 10:22:48"
       
      Parameters:
      date - 日時(null不可)
      format - フォーマット(null不可)
      locale - ロケール(null不可)
      timeZone - タイムゾーン(null不可)
      Returns:
      変換した値
      Throws:
      IllegalArgumentException - フォーマットが不正な場合
    • formatDecimal

      public static String formatDecimal(Number number, String format)
      指定されたフォーマットと言語を使用して10進数を変換する。

      このメソッドはformatDecimal(Number, String, Locale)を呼び出す。 言語は、ThreadContextから取得する。

      Parameters:
      number - 10進数(null不可)
      format - フォーマット(null不可)
      Returns:
      変換した値
      See Also:
    • formatDecimal

      public static String formatDecimal(Number number, String format, Locale language)
      指定されたフォーマットと言語を使用して10進数を変換する。

      指定するフォーマットはDecimalFormatの仕様に準拠すること。

      例:

       Number number = BigDecimal.valueOf(123456789.123D);
       String format = "###,###,###.000";
       
       Locale language = new Locale("ja");
       I18NUtil.formatDecimal(number, format, language); //--> "123,456,789.123"
       
       language = new Locale("es");
       I18NUtil.formatDecimal(number, format, language); //--> "123.456.789,123"
       
      Parameters:
      number - 10進数(null不可)
      format - フォーマット(null不可)
      language - 言語(null不可)
      Returns:
      変換した値
      Throws:
      IllegalArgumentException - フォーマットが不正な場合