Notesへ戻る
Power Platformメモ
Power Appsで日付を扱うときの基本と注意点
Power Appsで日付フォーマットの指定・表示・計算をするときのつまずきポイントと対処をざっくり整理したメモです。
Power Appsで日付を扱うときの基本と注意点
この記事の位置づけ
この記事は、Power Appsの初学者向け技術メモです。関数の動作は環境・バージョンによって変わることがあります。実際のアプリで動作を確認してください。
ざっくり言うと
Power Appsで日付を扱うとき、「表示フォーマット」「比較」「計算」 の3つでそれぞれつまずきやすいポイントがあります。
基本を押さえておくと、エラーや意図しない動作を防げます。
主なポイント
- 日付の表示形式は
Text(日付, "yyyy/mm/dd")で変換する - 日付の計算は
DateAdd/DateDiff関数を使う - SharePointの日付列は
UTCとローカルの扱いに注意が必要 Today()は今日の日付(時刻なし)、Now()は現在日時
日付の表示フォーマットを変える
Text関数でフォーマット変換
Text(日付, フォーマット文字列)
例:
Text(Today(), "yyyy/mm/dd") → "2026/05/29"
Text(Today(), "yyyy年mm月dd日") → "2026年05月29日"
Text(Today(), "mm/dd") → "05/29"
DatePicker などで選んだ日付を表示したい場合は Text 関数で変換します。
よく使うフォーマット文字列
| フォーマット | 結果例 |
|---|---|
"yyyy/mm/dd" | 2026/05/29 |
"yyyy-mm-dd" | 2026-05-29 |
"mm/dd/yyyy" | 05/29/2026 |
"[$-ja]yyyy年mm月dd日" | 2026年05月29日 |
日付の計算(DateAdd / DateDiff)
DateAdd:指定日数後・前の日付を求める
DateAdd(開始日, 日数, TimeUnit.Days)
例:
DateAdd(Today(), 7, TimeUnit.Days) → 7日後の日付
DateAdd(Today(), -3, TimeUnit.Days) → 3日前の日付
DateAdd(Today(), 1, TimeUnit.Months) → 1ヶ月後
DateDiff:2つの日付の差を求める
DateDiff(開始日, 終了日, TimeUnit.Days)
例:
DateDiff(DatePicker1.SelectedDate, Today(), TimeUnit.Days)
→ DatePicker1で選択した日から今日までの日数
SharePointの日付列を使うときの注意
SharePointの日付列には「日付のみ」と「日付と時刻」の2種類があり、Power Appsで取得したときにタイムゾーン(UTC)の影響で1日ずれることがあります。
よくある症状: SharePointに「2026/05/29」と入れたのに、Power Appsで表示すると「2026/05/28」になる。
対処の入口:
DateAdd(ThisItem.日付列, TimeZoneOffset(), TimeUnit.Minutes)
タイムゾーンオフセットを手動で補正する方法が一般的に使われます。ただし、環境・設定によって挙動が変わるため、動作確認を必ず行ってください。
Today() と Now() の違い
| 関数 | 返す値 | 主な用途 |
|---|---|---|
Today() | 今日の日付(時刻なし) | 期限切れ判定・日数計算 |
Now() | 現在の日時(時刻あり) | 操作ログ・タイムスタンプ |
DateDiff で日数だけを計算したい場合は Today() を使います。Now() は時刻を含むため、日数計算で誤差が出ることがあります。
注意点
日付関数の挙動はPower Appsのバージョン・テナントの設定・SharePointのリスト設定によって変わることがあります。
特にUTC/ローカル時刻の問題は、環境によって再現しない場合もあるため、実際のデータで必ず動作確認をしてください。