diff --git a/plugin/kintone-addins/src/actions/insert-value.ts b/plugin/kintone-addins/src/actions/insert-value.ts index 0ab1d03..c93d8f2 100644 --- a/plugin/kintone-addins/src/actions/insert-value.ts +++ b/plugin/kintone-addins/src/actions/insert-value.ts @@ -113,11 +113,11 @@ export class InsertValueAction implements IAction{ //正規表現チェック let timeFormat =inputValue.match(/^([0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/); - //正規表現チェック確認 - if(timeFormat === null){ - event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。"; //レコードにエラーを表示 - throw new Error("「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。「値を挿入する」コンポーネントの処理を中断しました。"); - } + //正規表現チェック確認 + if(timeFormat === null){ + event.record[fieldCode]['error'] = "「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。"; //レコードにエラーを表示 + throw new Error("「"+fieldCode+"」"+"フィールドに入れようとした値は、無効な時刻形式です。「値を挿入する」コンポーネントの処理を中断しました。「1~2桁 : 2桁」の値を指定してください。"); + } return true; } @@ -142,7 +142,26 @@ export class InsertValueAction implements IAction{ return dateTime; } - //日付フィールドの場合、時刻なしの日付形式変換 + //日付フィールドの場合、時刻なしの日付に形式変換 + //UTCの時刻を挿入したい場合、JSTに変換する + let dateTimeMilliSecond = inputValue.match(/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}).(\d{2,3})Z$/);//時刻入りのUTCの日付形式(ミリ秒) + let dateTimeNotIncludingMilliSeconds = inputValue.match(/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/);//時刻入りのUTCの日付形式 + + if(dateTimeMilliSecond !== null || dateTimeNotIncludingMilliSeconds !== null){ + //JSTに変換 + let jstDate=date.toLocaleString("ja-JP", { timeZone: "Asia/Tokyo" }); + console.log(jstDate); + let dateArray=jstDate.match(/(\d{4})\/(\d{1,2})\/(\d{1,2})/);//4桁の数字-1~2桁の数字-1~2桁の数字 + if(dateArray !== null){ + let yearIndex = 1; + let monthIndex = 2; + let dayIndex = 3; + let dateFormatted=`${dateArray[yearIndex]}-${dateArray[monthIndex]}-${dateArray[dayIndex]}` + return dateFormatted; + } + } + + //UTC時刻でない値を挿入したい場合、年、月、日を抽出し、月-年-日の形式変換 let dateArray=inputValue.match(/(\d{4})-(\d{1,2})-(\d{1,2})$/);//4桁の数字-1~2桁の数字-1~2桁の数字 if(dateArray !== null){ let yearIndex = 1;