Power Apps キャンバス アプリでの日付と時刻に関する問題のトラブルシューティング
日付と時刻の値が 1 日または数時間でオフになっている場合は、タイム ゾーンまたは夏時間調整が原因である可能性があります。 この記事では、次のような問題のトラブルシューティングに関するヒントを提供します。
- Date フィールドと Time フィールドには、現地時刻ではなく UTC が表示されます。その逆も同様です。
- Date Only値は、一部のユーザーとタイム ゾーンの間違った日付を示します。
- 夏時間の切り替え日を入力すると、日付が 1 日ずつオフになるか、時刻が 1 時間オフになります。
サーバーまたはクライアントの問題かどうかを判断する
キャンバス アプリは Web アプリです。 クラウド サービス (サーバー) からデータを取得します。 同じデータが複数のアプリ (クライアント) に電力を供給できます。 サーバーまたはクライアントでエラーが発生する可能性があります。
データ ソースの日付と時刻の値が予期しない場合は、キャンバス アプリだけでなく、すべての場所で正しく表示されない可能性があります。 そのため、格納されている値を確認することは重要な最初の手順です。
正しい値がサーバーに格納されているかどうかを確認する
日付と時刻の値は通常、UTC として格納されます。 Dataverse テーブルの場合は、Web API クエリを使用して生の日付と時刻の値を 表示できます。 Microsoft List や Excel などの他のデータ ソースについては、それぞれのドキュメントを参照してください。
データ ソースと日付選択コントロールのタイム ゾーン調整設定を確認する
一部のデータ ソースは、タイム ゾーン用に既に調整されています。 また、 Date Picker コントロール では、 DateTimeZone プロパティを使用してタイム ゾーンを調整することもできます。
一般的な間違いは、データ ソースとコントロールの設定の不一致です。 たとえば、Dataverse テーブル列が Time-Zone Independent で、Date Picker の DateTimeZone が Local に設定されている場合、サーバーの UTC 値はユーザーのタイム ゾーンに従って表示されます。 逆も同じです。 dataverse の User Local 値は、 DateTimeZone が UTC に設定されている場合、UTC として表示されます。
この潜在的な競合は、個々のコントロールのタイム ゾーン処理をカスタマイズできないため、モデル駆動型アプリでは発生しません。
別のタイム ゾーンを試す
タイム ゾーンと夏時間の調整によって予期しない値が発生しているかどうかを確認するには、ユーザーのタイム ゾーンを変更してみてください。
キャンバス アプリでは、システム タイム ゾーンが使用されます。 変更方法については、Windows、Android、iOS、または macOS のそれぞれのドキュメントを参照してください。
ユーザーのタイム ゾーンを表示する
ユーザーのタイム ゾーンは、 TimeZoneOffset 関数で確認できます。 UTC とユーザーのタイム ゾーンの間の分数が表示されます。 たとえば、ユーザーが太平洋標準時の場合、 480 が返されます。 これは、日付選択コントロールと Power Fx がタイム ゾーンと夏時間の調整に使用するのと同じオフセットです。
このオフセットを使用すると、日付と時刻の値が正しく調整されたかどうかを計算できます。
"日付のみ" 形式を "日付と時刻" に変更する
日付のみの値が 1 日ごとにオフになっている場合は、タイム ゾーンの調整が原因であるかどうかを確認するために、時刻部分を表示すると便利です。
2 桁の年を使用しない
2 桁の年はあいまいです。 たとえば、40 は 1940、2040、または 2140 を意味します。 システムが 2 桁の年を解釈する方法は、時間の経過と同時に変化する可能性があります。
また、完全な日付と時刻の値が表示されない場合を調査することも困難です。 このような理由から、特に日付を入力するときは、4 桁の年を使用することを強くお勧めします。
Dataverse の日付と時刻の列に関する一般的な問題
[日付のみ] 列に一部のユーザーの間違った日付が表示される
この問題は、常に時間コンポーネントを持つ Time-Zone Independent と User Local の調整動作で発生する可能性があります。 タイム ゾーン調整は、Dataverse またはキャンバス アプリによって、日付を 1 日ずつ前後に移動できます。
この問題を解決するには、値の時間コンポーネントを表示し、タイム ゾーン調整設定を チェックします。
形式が "日付のみ" の場合でも、フォームに列の時刻の選択ウィンドウが表示される
この問題は、常に時間コンポーネントを持つ Time-Zone Independent と User Local の調整動作で発生する可能性があります。 このような列をフォームに追加すると、フォームには時間も必要であると見なされます。
ユーザーに値の時間コンポーネントを表示または編集させたくない場合は、次の手順を実行します。
タイム ピッカーを削除します。
タイム ゾーンの調整を必要としない User Local 列の場合は、調整動作を Date Only に変更します。
Note
これは、 Date Only 形式とは異なります。 これは永続的な変更であり、元に戻すことはできません。 以前にタイム ゾーンの列を調整した他のアプリ、プラグイン、またはワークフローが正しく機能しない可能性があります。