ロボットでの日付と時刻の処理
一般的な形式から日付と時刻を抽出して、統一された日付と時刻の形式にすることができます。また、Date、Time、および DateTime 変数を作成して割り当てたり、日付と時刻を比較および変換したりすることもできます。
このトピックでは、機能に関する一般的な情報、およびロボットで日付と時刻を処理するための詳細な説明を含むこのヘルプの他のトピックへのリンクを提供します。
日付と時刻を操作するためには、次のような機能を使用できます。
-
タイプ: Date、Time、および DateTime
-
コンバータ ステップ: DateTime を抽出、DateTime の書式設定
-
Date、Time、および DateTime のタイプに基づく関数
タイプ
Date タイプは、時刻またはタイム ゾーンを参照せずに日付を表すタイプです。Date タイプの変数のデフォルト値は、1601-01-01 です。
Time タイプは、日付とタイム ゾーンを参照せずに時刻を表すタイプです。Time タイプの変数のデフォルト値は、00:00:00 です。
DateTime タイプは、ISO-8601 カレンダー システムのタイム ゾーンで日付と時刻を表すタイプで、これは基本的にタイム ゾーンで日付と時刻の値です。DateTime 変数のデフォルト値は、その Date および Time コンポーネントのデフォルトのタイプで構成され、デフォルト タイム ゾーンはロボットが実行される場所に対応します。
これらのタイプは、ベーシック エンジン ロボットのシンプル タイプの Date に対応します。これらのタイプを使用するには、最初に Date 型の属性を持つコンプレックス タイプを作成する必要があります。次に、[レコード タイプのフィールド タイプ] を Date、Time、または DateTime (デフォルト) のいずれかに指定する必要があります。追加の手順については、「Date、Time、および DateTime レコード フィールド タイプ」を参照してください。また、ロボット エディターで Date、Time、または DateTime タイプの変数を直接追加して、ロボット内で使用することもできますが、この場合、変数の結果値はベーシック エンジン ロボットに転送されません。
次に示すように、Date、Time、および DateTime の値は、 [状態] ペインの [変数] セクションに反映されます。ロボットの編集中に値をダブルクリックして新しい値を入力することで、[状態] ペインで変数の値を一時的に変更できます。他の値と同様に、year、hour、offset など、Date、Time、および DateTime の値の個々の部分を変更できます。
コンバータ ステップ
次の 2 つのコンバータ ステップを使用して、ロボットで日付と時刻を処理することができます。
-
DateTime を抽出ステップは、テキスト表現を Date、Time、または DateTime 値に変換します。
-
DateTime の書式設定ステップは、Date、Time、または DateTime 値を Text 値に変換します。
関数
Ctrl キーを押しながらスペース キーを押すと、エクスプレッション エディターで使用可能な関数の完全なリストを直接取得できます。使用可能な関数の詳細については、「エクスプレッション」のトピックを参照してください。
Date、Time、DateTime の各タイプには、コンポーネントへのアクセスに役立つ関数のセットがいくつか用意されています。
-
Date: year、month、および day。
-
Time: hour、minute、second、および nanosecond。
-
DateTime: date、time、offset、および zoneID。
これらのコンポーネントはフィールド値ではないため、エクスプレッションのフィールドとしてアクセスすることや割り当てステップのフィールドで設定することができないことに注意してください。
他の関数を使用することで、それぞれのタイプの値を作成し、そのタイプの値をテキストに変換できます。たとえば、with 関数を使用して DateTime コンポーネントの値を変更したり、plus および minus 関数を使用して年、月、または日数を加算または減算したり、text 関数を使用して値をテキスト表現に変換したりすることなどができます。
例
- year(Date) という関数は、現在の日付の年を返します。
year(date(2022, 3, 4)) は year = 2022 を返します。
-
hour(Time) という関数は、現在の時刻の時間を返します。
hour(time(14, 50, 45)) は hour = 14 を返します。
-
withDay(Date, Integer) という関数は、日付が変更された日付のコピーを返します。
date(2022, 3, 4).withDay(10) は、year = 2022、month = 3、day = 10 を返します。
-
plusDays(Date, Integer) という関数は、指定された日数が追加された日付のコピーを返します。
date(2022, 3, 4).plusDays(70) は、year = 2022、month = 5、day = 13 を返します。
-
text(DateTime, Text, Text) という関数は、指定されたパターンとロケール (ハイフンで区切られた言語コードと国コードの組み合わせ) に一致する DateTime の日付と時刻のテキスト表現を返します。
DateTime が 2021-12-20T00:30:00+03:00 である場合、text("EEEE MMM d yy HH:mm", "en-US") は "Monday Dec 20 21 00:30" を返します
タイム ゾーンの操作
一連の関数を使用して、タイム ゾーンを操作することができます。たとえば、現在のタイム ゾーンの取得やタイム ゾーンの変更ができます。次の 2 つのプロパティがタイム ゾーンに関連しています。zoneID および Offset。
- zoneID
-
zoneID は、"Europe/Paris" (ヨーロッパ/パリ) や "MET" などのタイム ゾーンを識別するために使用されます。このプロパティは、夏時間を考慮する必要がある場合、または、あるタイム ゾーンから別のタイム ゾーンに DateTime 値を変換する必要がある場合に役立ちます。ゾーン ID とオフセットは相互に関連しており、一方を変更すると他方も変更される可能性があります。
- オフセット
- Offset は、+01:00 や -05:00 など、グリニッジ/UTC からのタイム ゾーン オフセットを識別するために使用されます。Offset の形式は次のとおりです。
-
Z - UTC の場合
-
+h
-
+hh
-
+hh:mm
-
-hh:mm
-
+hhmm
-
-hhmm
-
+hh:mm:ss
-
-hh:mm:ss
-
+hhmmss
-
-hhmmss
Offset を設定すると zoneID が UTC に変更され、オフセットが 0 または Z でない場合は、その後にオフセットが表示されます。たとえば、オフセットを +00 に設定すると UTC というゾーン ID となり、オフセットを +05 に設定すると UTC +05:00 というゾーン ID になります。
また、DateTime 値にオフセットまたはゾーン ID を設定すると、新しいゾーンと同じインスタンスを表す DateTime 値になります。つまり、日付と時刻が変更される可能性があります。これは、関数 withzoneID および withOffset を使用して設定できます。
日付と時刻を変更せずにタイム ゾーンを変更するには、次のような新しい DateTime 値を作成します。
dateTime(dateTime1.date(), dateTime1.time(), “Europe/Paris”)
[状態] ビューからオフセットまたはゾーン ID を設定するとゾーン ID またはオフセットがそれぞれ変更されるため、相互に整合性が保たれますが日付と時刻は変更されません。
-