Power Appsで現在時刻を表示するのに、テキスト ラベルコントロールのTextプロパティに Now() と設定しただけでは、アプリの起動時間を表示するだけで、時刻は更新してくれません。
そこで、タイマーコントロールを用い、定期的に現在時刻を取得し、テキストラベルへ時刻を表示するようにします。
タイマーは、定期的に処理を行うためのコントロールです。
タイマーの配置
タイマーコントロールは
挿入→入力→タイマー
でタイマーを配置します。
タイマーを配置すると、時間が配置されたボタンのようなコントロールが表示されますが、最終的に非表示にするので、配置場所は、どこでも構いません。
タイマーのプロパティ設定
タイマーのプロパティを初期状態から、以下のように変更します。
プロパティ | 設定値 | 意味 |
---|---|---|
AutoStart | true | アプリ起動時にタイマーを動かす(true)、動かさない(false)の設定 |
Duration | 1000 | タイマー処理の更新間隔をmSec単位で指定します。 |
OnTimerStart | Set(_nowTime, Now()) | タイマーの更新時に行う処理。 ここでは、_nowTimeという変数に現在時刻(Now())を設定しています。 |
Repeat | true | タイマー処理を繰り返し行う(true)、行わない(false)の設定 |
Visible | false | タイマーコントロールの表示(true)、非表示(false)設定 |
この設定で、現在時刻が_nowTimeに代入され、値が1秒おきに更新されます。
テキストラベルの配置
現在時刻表示用にテキストラベルを配置します。
挿入→ディスプレイ→テキストラベル
で、配置します。
ラベルの配置や大きさは、好みの設定で構いませんが、以下のような設定にしました。
テキストプロパティ設定
プロパティ | 設定値 | 意味 |
---|---|---|
Size | 50 | テキストのフォントサイズ |
Text | _nowTime | ラベルの表示する文字 |
Textラベルには、タイマーで更新される現在時刻(_nowTime)を設定しています。
実行結果
現在の設定では、時刻が分単位なので、分かりづらいですが、1秒おきに更新処理が行われ、現在時刻が表示されます。
時刻表示フォーマットの設定
時刻表示のフォーマットを設定するには、Text関数を用います。
上記の実行結果は、現在時刻が
2025年2月16日 10時50分
という表示になっていますが、これを
2025年2月16日 10:50:30
のように秒単位まで表示したいと思います。
このようにするには、テキストラベルのTextプロパティを以下のように設定します。
Text(_nowTime,"yyyy年m月d日 hh:mm:ss")
ここで使用しているyyyyやmの意味は以下の通りです。
文字 | 意味 |
---|---|
yyyy | 西暦を4桁で表示します。 2桁で表示する場合は yy |
m | 月を1桁で表示します。 1桁の月に0を付けて2桁表示する場合は mm にします。 |
d | 日を1桁で表示します。 1桁の日に0を付けて2桁表示する場合は dd にします。 |
hh | 時間を2桁表示します。 |
mm | 分を2桁表示します。 |
ss | 秒を2桁表示します。 |
詳細は以下のマイクロソフトのページを参照ください。
ただし、yyなどの文字の部分が無理やり日本語に翻訳されてしまっているので、ページの右上にある地球儀マークをクリックして、英語ページでも内容を確認してください。
最終的な実行結果
これで、自分のやりたかった表示になってくれました!