org.opengion.fukurou.system

## クラス DateSet

- java.lang.Object
- - org.opengion.fukurou.system.DateSet

-     public class DateSet
      extends java.lang.Object

       DateSet.java は、入力ファイルの日付，時刻キーワードを実行時の日時で変換して,出力します。

       変換には,$(yyyy)の形式で指定し,カッコの文字列は,java.text.SimpleDateFormat で使用する，
       時刻フォーマット構文を用います。
       また、引数に keys,vals を渡すことで、$(KEY1) 文字列を VAL1 文字列と置き換えます。

        サンプルファイル
        $(yyyy/MM/dd)        年／月／日を表します。
        $(yy)                年だけを２桁で表します。
        $(MM)                月を２桁 (02,03など)で表します。
        $(dd)                日を２桁 (02,03など)で表します。
        $(HH:mm:ss)          時：分：秒を表します。
        $(MMMMMMMM)          月をフルスペルで表します。
        $(MMM)               月を３桁固定(Mar，Aplなど)で表します。
        $(EEEEEEEE)          曜日をフルスペルで表します。
        $(EEE)               曜日を３桁固定(Sun,Monなど)で表します。

        // 7.0.1.3 (2018/11/12)                                                      2019/01/01    2030/01/01
        $(ATIME)             通算秒数( new Date().getTime()/1000 )  の 10桁文字列    1546268400    1893423600
        $(BTIME)             通算分数( new Date().getTime()/60000 ) の  8桁文字列      25771140      31557060
          ※ BTIME が桁あふれするのは、2160/02/18 です。

         時刻フォーマット構文

         記号     意味                    表示                例
         ------   -------                 ------------        -------
         G        年号                    (テキスト)          AD
         y        年                      (数値)              1996
         M        月                      (テキスト & 数値)  July & 07
         d        日                      (数値)              10
         h        午前/午後の時 (1~12)    (数値)              12
         H        一日における時 (0~23)   (数値)              0
         m        分                      (数値)              30
         s        秒                      (数値)              55
         S        ミリ秒                  (数値)              978
         E        曜日                    (テキスト)          火曜日
         D        年における日            (数値)              189
         F        月における曜日          (数値)              2 (7月の第2水曜日)
         w        年における週            (数値)              27
         W        月における週            (数値)              2
         a        午前/午後               (テキスト)          PM
         k        一日における時 (1~24)   (数値)              24
         K        午前/午後の時 (0~11)    (数値)              0
         z        時間帯                  (テキスト)          PDT
         '        テキスト用エスケープ
         ''       単一引用符                                  '

        パターン文字のカウントによって、そのフォーマットが決まります。
        (テキスト): 4以上: フル形式を使用します。4以下: 短いまたは省力された形式があれば、それを使用します。

        (数値): 最小桁数。これより短い数値は、この桁数までゼロが追加されます。年には特別な処理があります。
        つまり、'y'のカウントが2なら、年は2桁に短縮されます。

        (テキスト ＆ 数値): 3以上ならテキストを、それ以外なら数値を使用します。

        パターンの文字が['a'..'z']と['A'..'Z']の範囲になければ、その文字は引用テキストとして扱われます。
        たとえば、':'、'.'、' '、'#'、'@'などの文字は、単一引用符に囲まれていなくても、
        結果の時刻テキストに使用されます。

        無効なパターン文字がパターンに入っていると、フォーマットや解析で例外がスローされます。

        USロケールを使った例:

         フォーマットパターン                   結果
         --------------------                   ----
         "yyyy.MM.dd G 'at' hh:mm:ss z"    ⇒  1996.07.10 AD at 15:08:56 PDT
         "EEE, MMM d, ''yy"                ⇒  Wed, July 10, '96
         "h:mm a"                          ⇒  12:08 PM
         "hh 'o''''clock' a, zzzz"         ⇒  12 o'clock PM, Pacific Daylight Time
         "K:mm a, z"                       ⇒  0:00 PM, PST
         "yyyyy.MMMMM.dd GGG hh:mm aaa"    ⇒  1996.July.10 AD 12:08 PM

  変更履歴:
    6.4.2.0 (2016/01/29) package変更 fukurou.util → fukurou.system, 7.0.1.3 (2018/11/12) keys,valsをMapに変更。BUILD_TYPEのビルド番号を100秒単位に変更。
  バージョン
    0.9.0 1999/03/09
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK1.1,

- - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `DateSet()` デフォルトコンストラクター Mapの初期値を設定しておきます。

  - ### メソッドのサマリー

    すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `byte[]` | `change(byte[] inByte)` 現在日付、時刻をフォーマット指定個所に埋め込みます。
    `java.lang.String` | `changeForm(java.lang.String form)` パラメータの変換、および、現在日付、時刻のフォーマット変換を行います。
    `java.lang.String` | `changeString(java.lang.String form)` パラメータの変換、および、現在日付、時刻のフォーマット変換を行います。
    `static java.lang.String` | `getDate()` 現在日付、時刻を指定のフォーマットで文字列に変換して返します。
    `static java.lang.String` | `getDate(long time, java.lang.String form)` 指定時刻を指定のフォーマットで文字列に変換して返します。
    `static java.lang.String` | `getDate(java.lang.String form)` 現在時刻を指定のフォーマットで文字列に変換して返します。
    `static void` | `main(java.lang.String[] args)` 入力ファイルの時刻フォーマットを変換して出力ファイルに書き込みます。
    `void` | `setParamMap(java.util.concurrent.ConcurrentMap pMap)` フォーマット解析時に置き換える キーと値のMapを設定します。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### DateSet

          public DateSet()

      デフォルトコンストラクター Mapの初期値を設定しておきます。
      変更履歴:
        7.0.1.3 (2018/11/12) KeysValsは、Mapに置き換え, 7.0.1.4 (2018/11/26) ATIME,BTIME 追加

  - ### メソッドの詳細

    - #### setParamMap

          public void setParamMap(java.util.concurrent.ConcurrentMap pMap)

      フォーマット解析時に置き換える キーと値のMapを設定します。 $(KEY1) 文字列を VAL1 文字列と置き換える処理を行います。これにより日付以外の 文字列を置き換える処理を実行できます。
      パラメータ:
        `pMap` - 置き換え元のMap
      変更履歴:
        7.0.1.3 (2018/11/12) KeysValsは、Mapに置き換え

    - #### change

          public byte[] change(byte[] inByte)

      現在日付、時刻をフォーマット指定個所に埋め込みます。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。
      パラメータ:
        `inByte` - 変換元バイト配列(可変長引数)
      戻り値:
        変換後のバイト配列
      変更履歴:
        6.3.6.0 (2015/08/16) System.arraycopy が使える箇所は、置き換えます。, 6.4.2.0 (2016/01/29) fukurou.util.StringUtil → fukurou.system.HybsConst に変更

    - #### changeForm

          public java.lang.String changeForm(java.lang.String form)

      パラメータの変換、および、現在日付、時刻のフォーマット変換を行います。 先に、パラメータの変換を行います。form が、Mapのkey にマッチすれば、 その値を返します。マッチしなければ、時刻のフォーマット変換を行います。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。
      パラメータ:
        `form` - フォーム文字列 ( 例 "yyyy/MM/dd HH:mm:ss" )
      戻り値:
        フォーマット変換結果
      変更履歴:
        5.5.7.2 (2012/10/09) HybsDateUtil を利用するように修正します。, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs), 7.0.1.3 (2018/11/12) KeysValsは、Mapに置き換え

    - #### changeString

          public java.lang.String changeString(java.lang.String form)

      パラメータの変換、および、現在日付、時刻のフォーマット変換を行います。 先に、パラメータの変換を行います。form が、Mapのkey にマッチすれば、 その値を返します。マッチしなければ、時刻のフォーマット変換を行います。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。
      パラメータ:
        `form` - フォーム文字列 ( 例 "yyyy/MM/dd HH:mm:ss" )
      戻り値:
        フォーマット変換結果
      このメソッドは、nullを返しません

    - #### getDate

          public static java.lang.String getDate()

      現在日付、時刻を指定のフォーマットで文字列に変換して返します。 出力フォーマットは、"yyyy/MM/dd HH:mm:ss" 固定です。
      戻り値:
        現在日付、時刻 ( 例 2012/09/05 18:10:24 )
      変更履歴:
        5.5.7.2 (2012/10/09) 新規作成, 6.4.2.0 (2016/01/29) fukurou.util.HybsDateUtil → fukurou.system.DateSet に変更
      このメソッドは、nullを返しません

    - #### getDate

          public static java.lang.String getDate(java.lang.String form)

      現在時刻を指定のフォーマットで文字列に変換して返します。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。 変換時のロケーションは、Locale.JAPAN です。 現在時刻は、new Date() で求めます。
      パラメータ:
        `form` - フォーム文字列 ( 例 "yyyy/MM/dd HH:mm:ss.SSS" )
      戻り値:
        現在日付、時刻
      関連項目:
        `SimpleDateFormat`
      変更履歴:
        5.5.7.2 (2012/10/09) 新規作成, 6.4.2.0 (2016/01/29) fukurou.util.HybsDateUtil → fukurou.system.DateSet に変更
      このメソッドは、nullを返しません

    - #### getDate

          public static java.lang.String getDate(long time,
                                                 java.lang.String form)

      指定時刻を指定のフォーマットで文字列に変換して返します。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。 変換時のロケーションは、Locale.JAPAN です。 指定時刻は、new Date( time ) で求めます。
      パラメータ:
        `time` - 指定のカレントタイムのロング値
        `form` - フォーム文字列 ( 例 "yyyy/MM/dd HH:mm:ss.SSS" )
      戻り値:
        現在日付、時刻( 例 2001/04/17 15:48:22 )
      変更履歴:
        5.5.7.2 (2012/10/09) 新規作成, 6.4.2.0 (2016/01/29) fukurou.util.HybsDateUtil → fukurou.system.DateSet に変更
      このメソッドは、nullを返しません

    - #### main

          public static void main(java.lang.String[] args)
                           throws java.lang.Throwable

      入力ファイルの時刻フォーマットを変換して出力ファイルに書き込みます。 引数に <key1> <val1> のペア情報を渡すことが可能です。 先に、keys,vals の変換を行います。form が、keys にマッチすれば、vals を 返します。最後までマッチしなければ、時刻のフォーマット変換を行います。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。 フォーム文字列例 ( "yyyy/MM/dd HH:mm:ss" )
      パラメータ:
        `args` - 引数配列( 入力ファイル 出力ファイル キー１ 値１ ･･･
      例外:
        `java.lang.Throwable` - なんらかのエラーが発生した場合。
      変更履歴:
        7.0.1.3 (2018/11/12) KeysValsは、Mapに置き換え

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.