日付のフォーマット変換

質問

認識処理後、日付のフォーマット変換をしたいのですが。

例:

y: 年, m 月, d: 日

  • "yyyy/m/d" から "yyyy/mm/dd" へ。 例: 2012/3/7 から 2012/03/07 へ
  • "yyyy年m月d日" から "yyyy/mm/dd" へ 。例: 2012年03月07年 から 2012/03/07 へ

回答

一例をご紹介します。

  1. 文書定義エディタ:該当フィールドのプロパティを開き、ルールタブを開きます。

    「新規ルール」ボタンをクリックします。「検証ルール」ダイアログで、スクリプトを選択し、「OK」ボタンをクリックします。

    mceclip0.png

  2. [新しいスクリプトルール > 全般]が開かれます。

    [名前]:任意の名前を入力し、[次へ]ボタンをクリックします。

    mceclip1.png

  3. [新しいスクリプトルール > ルールの設定]が開かれますので、「読み取り専用」のチェックを外し、[編集]ボタンをクリックします。

    mceclip2.png

  4. [スクリプト]エディタが開かれますので、以下のようなスクリプトを記載します。

    例: 言語:C#

    string sDate = Context.Field("Date_02").Text;
    sDate = (string.IsNullOrEmpty(sDate))? "": sDate;
    sDate = sDate.Replace(" ", "");    // remove single byte blank
    sDate = sDate.Replace(" ", "");    // remove double byte blank
    sDate = sDate.Replace("年", "/");   // Change "年" to "/"
    sDate = sDate.Replace("月", "/");   // Change "月" to "/"
    sDate = sDate.Replace("日", "");   // remove "日"

    int iYPos = sDate.IndexOf("/");
    if(0<iYPos){
       string sYYY = sDate.Substring(0, iYPos);
       int iYYY = -1;
       if (int.TryParse(sYYY, out iYYY)){
           if(iYYY<200){
               iYYY = iYYY + 1911;
               sDate = iYYY.ToString() + sDate.Substring(iYPos, sDate.Length-iYPos);
           }
       }
    }

    // Change "yyyy/m/d" to "yyyy/mm/dd".
    string[] arr = sDate.Split('/');
    if(1<arr.Length && 1==arr[1].Length) arr[1] = "0" + arr[1];
    if(2<arr.Length && 1==arr[2].Length) arr[2] = "0" + arr[2];
    sDate = arr[0] + "/" + arr[1] + "/" + arr[2];
    Context.Field("Date_02").Text = sDate;

「テスト中メニュー > テストを実行」から動作確認を実施します。

他にご質問がございましたら、リクエストを送信してください

コメント

0件のコメント

サインインしてコメントを残してください。