パッケージ org.opengion.fukurou.system

# クラス DateSet

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

public class DateSet extends 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秒単位に変更。
導入されたバージョン:
  JDK1.1,

- ## コンストラクタの概要

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

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `byte[]`
  `change(byte... inByte)`
  現在日付、時刻をフォーマット指定個所に埋め込みます。
  `String`
  `changeForm(String form)`
  パラメータの変換、および、現在日付、時刻のフォーマット変換を行います。
  `String`
  `changeString(String form)`
  パラメータの変換、および、現在日付、時刻のフォーマット変換を行います。
  `static String`
  `getDate()`
  現在日付、時刻を指定のフォーマットで文字列に変換して返します。
  `static String`
  `getDate(long time, String form)`
  指定時刻を指定のフォーマットで文字列に変換して返します。
  `static String`
  `getDate(String form)`
  現在時刻を指定のフォーマットで文字列に変換して返します。
  `static void`
  `main(String[] args)`
  入力ファイルの時刻フォーマットを変換して出力ファイルに書き込みます。
  `void`
  `setParamMap(ConcurrentMap<String,String> 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(ConcurrentMap<String,String> 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 String changeForm(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 String changeString(String form)
    パラメータの変換、および、現在日付、時刻のフォーマット変換を行います。 先に、パラメータの変換を行います。form が、Mapのkey にマッチすれば、 その値を返します。マッチしなければ、時刻のフォーマット変換を行います。 フォーマットの指定方法は、java.text.SimpleDateFormat の指定方法と同一です。
    パラメータ:
      `form` - フォーム文字列 ( 例 "yyyy/MM/dd HH:mm:ss" )
    戻り値:
      フォーマット変換結果
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getDate

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