この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:T
更新日時:2026-06-11 07:10:02

タイトル: ブループリントで現在日時を取得する方法
SEOタイトル: UE5 ブループリント 現在日時取得 完全ガイド(Now / UtcNow / Today / DateTime / Timespan / フォーマット / タイムゾーン)

この記事の要点
  • 現在日時取得の代表ノードは Now(ローカル日時)と Utc Now(UTC 日時)、Today(時刻 00:00 の今日)
  • 戻り値は DateTime 構造体Get Year / Get Month / Get Day / Get Hour / Get Minute / Get Second / Get Millisecond で各成分を取得
  • 文字列化は To String (DateTime)、書式指定は ToFormattedString%Y-%m-%d %H:%M:%S 等)
  • 時間差は Timespan 型。A - B で DateTime 同士を引いて取得
  • ゲーム内経過時間は Get Game Time in Seconds / Get World Delta Seconds。実時刻と区別する

UE5 で「現在日時」を取得する方法

UE5 のブループリントで現在日時を取得するには、用途に応じて複数のノードを使い分けます。代表的なのは Now(ローカル)、Utc Now(UTC)、Today(時刻 0 の今日)です。

主要ノード

ノード戻り値意味
NowDateTimeローカルタイムでの現在日時
Utc NowDateTimeUTC(協定世界時)での現在日時
TodayDateTime本日 00:00:00(ローカル)
Get Year / Month / DayintDateTime から日付成分
Get Hour / Minute / Second / Millisecondint時刻成分
Get Day of Weekenum曜日(Monday … Sunday)
To String (DateTime)String既定フォーマット文字列
ToFormattedStringStringstrftime 風書式で文字列化
Get Game Time in Secondsfloatゲーム内経過時間(実時刻ではない)

基本: 現在日時を取って Print する

  1. イベントグラフで Event BeginPlay を配置
  2. Now ノードを追加して接続
  3. 戻り値を To String (DateTime) に通す
  4. Print String で表示

これで画面に「2026.06.11-14.30.55」のような既定形式が表示されます。

各成分を取り出す

例えば「いま 14:30」だけ取りたい場合:

  1. Now → 出力を分岐
  2. 片方を Get Hour、もう片方を Get Minute
  3. 整数を文字列化して連結 → Print String

書式指定して文字列化

ToFormattedString ノードは Linux の strftime に似た書式を取ります。

書式意味
%Y4 桁年2026
%y2 桁年26
%m2 桁月06
%d2 桁日11
%H24 時表記の時14
%M30
%S55
%A曜日(英語フル)Thursday

例: %Y-%m-%d %H:%M:%S2026-06-11 14:30:55

セーブデータ / ログ向きの形式

ログ・ファイル名向きには To String (Iso 8601)%Y%m%dT%H%M%S を使うとソート可能で扱いやすくなります。

時間差を取る(Timespan)

DateTime 同士を引き算すると Timespan が返ります。

  1. 2 つの DateTime(例: Now と セーブ時刻)を引き算ノード(-)に入れる
  2. 出力 Timespan を Get Total Seconds / Get Total Minutes / Get Total Hours

「前回起動から何時間経った?」「タイマー残り何秒?」に便利。

ローカル時刻と UTC を使い分ける

用途推奨
画面表示(ユーザーが見る)Now(ローカル)
サーバとの時刻同期UtcNow
セーブデータ / ログUtcNow(端末跨ぎでズレない)
イベント期間判定(全世界共通)UtcNow + 期間を UTC で定義

注意: 実時刻とゲーム時間は別物

UE5 の時間関連ノードには大きく 2 系統あります。混同するとバグります。

系統取得ノード性質
実時刻(壁時計)Now / UtcNow / TodayOS の時計。一時停止しても進む
ゲーム内経過時間Get Game Time in Seconds / Get Time Secondsワールド開始からの経過。Pause Game で止まる
フレーム差分Get World Delta Seconds / Event Tick の Delta Seconds毎フレームの経過時間

「ゲーム内タイマーで 60 秒後に何かする」は Game Time、「実世界で何時間プレイしたか」「日付をまたいだか」は Now / UtcNow を使います。

「日付が変わったか」判定

  1. セーブデータに前回起動時の Today(DateTime)を保存
  2. 起動時に Today を取得
  3. 2 つを比較(!=)して true なら日次リセット処理

C++ での同等処理

FDateTime Now    = FDateTime::Now();      // ローカル
FDateTime UtcNow = FDateTime::UtcNow();   // UTC
FDateTime Today  = FDateTime::Today();    // 0:00:00 の今日

int32 Year   = Now.GetYear();
int32 Hour   = Now.GetHour();
EDayOfWeek W = Now.GetDayOfWeek();

FString S    = Now.ToString(TEXT("%Y-%m-%d %H:%M:%S"));

FDateTime A, B;
FTimespan Diff = A - B;
double Sec     = Diff.GetTotalSeconds();

FAQ

Q: Now はリプレイで再生時刻と同じになる?
A: いいえ、リプレイでも Now は実時刻を返します。リプレイ位置に同期したいならゲーム時間側を使います。

Q: Now はパッケージ版でも動く?
A: 動きます。OS の時計を読むので、改ざんされやすい点だけ注意(実績や課金チェックはサーバ時刻で)。

Q: ミリ秒精度が欲しい
A: Get Millisecond で 0-999 のミリ秒成分が取れます。ベンチマークなら FPlatformTime::Seconds()(C++)か Get Game Time in Seconds を使うほうが扱いやすい。

関連

  • ブループリント — 親カテゴリ
  • DateTime 構造体 / Timespan 構造体
  • Get Game Time in Seconds / Set Timer by Function Name
  • Save Game / SaveGameToSlot
  • Print String / Append(文字列連結)