NarraLeaf

時間

時刻を読み取り、日付を扱い、ある瞬間をテキストとして整形します

現在時刻の読み取りと日付操作のための15個の pure ノードです。Now は現在時刻を読み取ります。Make TimeGet Time Parts は、ある瞬間とそのカレンダー上の各項目とを相互に変換します。Add TimeTime Difference は、各月の長さを考慮した演算を行います。4つの整形ノードは、ある瞬間をテキストに変換します。

よくある用途はセーブ画面です。あるスロットが書き込まれた時刻を表示するには、Get Save Time をこのページの整形ノードのいずれかに接続します。

規約

  • このページのすべてのノードは Pure です。 いずれも exec ピンを持ちません。eventfunctionmacro グラフのいずれでも合法であり、Blueprint Value の内部でも使用できます。セーブスロットのラベルは Blueprint Value です。
  • ある瞬間は1つの数値です。1970年1月1日 UTC からのミリ秒数を、float ピンで表します。 これは Get Save TimeGet Latest Auto Save が生成する単位であるため、セーブのタイムスタンプはこのページのどのノードにもそのまま接続できます。
  • 時刻を比較するノードはありません。 より遅い瞬間ほど大きな数値になるため、Math<>MinMax だけで2つの瞬間の順序を判定できます。
  • カレンダーはプレイヤーのローカルのものです。 Make TimeGet Time PartsAdd TimeTime DifferenceStart Of DayIs Same DayFormat Time はすべてローカル時刻を読みます。To ISO String は例外で、UTC を出力します。
  • 何もキャッシュされません。 ノードは読み取られるたびに再実行されるため、Now はそれを読む各エッジに対して異なる値を返します。
  • 有効な数値でないピンは 0、すなわち1970年1月1日として扱われます。 Format Time はこの日付をそのまま出力し、何の警告も出しません。整形結果が1970年になっている場合は、入力が届いていないことを意味します。

Now

blueprint.time.now · Pure

現在時刻です。

ピン方向備考
timestampout · datafloat

Make Time

blueprint.time.make · Pure

ローカルのカレンダー項目から1つの瞬間を組み立てます。

ピン方向備考
yearin · dataintegerカード上での直接入力に対応します。50 は西暦50年を意味し、1950年ではありません。
monthin · datainteger1–12。カード上での直接入力に対応します。
dayin · datainteger1–31。カード上での直接入力に対応します。
hourin · datainteger0–23。カード上での直接入力に対応します。
minutein · datainteger0–59。カード上での直接入力に対応します。
secondin · datainteger0–59。カード上での直接入力に対応します。
millisecondin · datainteger0–999。カード上での直接入力に対応します。
timestampout · datafloat

範囲外の項目は次の項目へ繰り上がります。month13 を指定すると翌年の1月になります。day0 を指定すると前月の最終日になり、これを使えばある月の月末に到達できます。

Get Time Parts

blueprint.time.parts · Pure

ある瞬間をローカルのカレンダー項目に分解します。

ピン方向備考
timestampin · datafloatカード上での直接入力に対応します。
yearout · datainteger
monthout · datainteger1–12。
dayout · datainteger1–31。
hourout · datainteger0–23。
minuteout · datainteger0–59。
secondout · datainteger0–59。
millisecondout · datainteger0–999。
weekdayout · datainteger0 が日曜日、6 が土曜日です。
dayOfYearout · datainteger1月1日が 1 です。

Format Time

blueprint.time.format · Pure

パターンを使ってある瞬間をテキストとして描画します。

ピン方向備考
timestampin · datafloatカード上での直接入力に対応します。
patternin · datastringカード上での直接入力に対応します。空欄の場合は YYYY-MM-DD HH:mm として扱われます。
resultout · datastring
トークン出力
YYYY4桁の年2026
YY2桁の年26
MM / M月、ゼロ埋めあり/なし08 / 8
DD / D日、ゼロ埋めあり/なし04 / 4
HH / H時、24時間制、ゼロ埋めあり/なし15 / 15
hh / h時、12時間制、ゼロ埋めあり/なし03 / 3
mm / m分、ゼロ埋めあり/なし30 / 30
ss / s秒、ゼロ埋めあり/なし05 / 5
SSSミリ秒007
A / a午前・午後PM / pm

トークンでないものはそのまま出力されます。単一引用符で囲まれたテキストはトークンとして走査されずそのまま出力されるため、トークンと同じ文字であってもそのまま印字できます。'Day' DDay 14 になります。単一引用符が連続する場合は、引用符1つとして出力されます。

Format Time Localized

blueprint.time.formatLocalized · Pure

ある瞬間を、指定した言語の慣習に従って描画します。

ピン方向備考
timestampin · datafloatカード上での直接入力に対応します。
localein · datastringカード上での直接入力に対応します。en-USzh-CN のような BCP 47 タグです。空の場合はプレイヤーのシステム言語を意味します。
resultout · datastring

カード上のフィールド

フィールド内容
Date StyleNoneShortMediumLongFull のいずれかです。既定は Medium です。
Time Style同じ5種類です。既定は None です。

両方のスタイルを None にすると、結果は空になります。システムが認識しないタグは、プレイヤーの言語にフォールバックします。

このノードはゲームの現在の言語を読み取りません。Get Current Languagelocale に接続すると、日付がプレイヤーの選択した言語に追従するようになります。

Format Relative Time

blueprint.time.formatRelative · Pure

2つの瞬間の間隔を言葉で表します。5 minutes agoin 2 days のようになります。

ピン方向備考
fromin · datafloatカード上での直接入力に対応します。基準点で、通常は Now を接続します。
toin · datafloatカード上での直接入力に対応します。表現の対象となる瞬間です。
localein · datastringカード上での直接入力に対応します。Format Time Localized と同様です。
resultout · datastring

カード上のフィールド

フィールド内容
WordingAuto はその言語が yesterday のような語を使うことを許します。Always Numeric は常に数で数えます。既定は Auto です。

単位は間隔の大きさに応じて決まります。1分未満は秒、その後は分、時、日、月、年の順です。

Format Duration

blueprint.time.formatDuration · Pure

時間の長さを時計のような表示として描画します。

ピン方向備考
millisecondsin · datafloatカード上での直接入力に対応します。
resultout · datastring

カード上のフィールド

フィールド内容
LayoutAuto は時間がある場合にのみ時間を表示します(1:052:03:04)。Hours Minutes Seconds は常に表示します(00:01:05)。Minutes Seconds は決して表示しません(01:05)。既定は Auto です。

時間は日への繰り上げをせず、そのまま積み上がり続けます。30時間のプレイ時間は 30:00:00 と表示されます。

出力は数字と区切り記号のみです。1 h 20 min のような言い回しには翻訳が必要になるため、Get Duration PartsFormat Text から組み立ててください。

Get Duration Parts

blueprint.time.durationParts · Pure

時間の長さを各単位に分解します。

ピン方向備考
millisecondsin · datafloatカード上での直接入力に対応します。
daysout · datainteger
hoursout · datainteger0–23。
minutesout · datainteger0–59。
secondsout · datainteger0–59。
remainingMillisecondsout · datainteger0–999。
totalHoursout · datainteger全体の長さを時間に換算した値です。
totalMinutesout · datainteger全体の長さを分に換算した値です。
totalSecondsout · datainteger全体の長さを秒に換算した値です。
negativeout · databoolean

すべての数値は絶対値です。符号は negative が示します。

Add Time

blueprint.time.add · Pure

ある瞬間を前または後ろに移動させます。

ピン方向備考
timestampin · datafloatカード上での直接入力に対応します。
amountin · datafloatカード上での直接入力に対応します。負の値は後ろへ移動します。
resultout · datafloat

カード上のフィールド

フィールド内容
UnitMillisecondsSecondsMinutesHoursDaysWeeksMonthsYears のいずれかです。既定は Seconds です。

MonthsYears はカレンダーに沿って計算され、対象の月の末日で止まります。1月31日に1か月を加えると2月28日、うるう年では29日になります。

Time Difference

blueprint.time.difference · Pure

to から from を引いた値を、指定した単位で表します。

ピン方向備考
fromin · datafloatカード上での直接入力に対応します。
toin · datafloatカード上での直接入力に対応します。
differenceout · datafloattofrom より前の場合は負になります。

カード上のフィールド

フィールド内容
UnitAdd Time と同様です。既定は Seconds です。

固定長の単位は小数を保持します。90分を時間で表すと 1.5 になるため、整数が必要な場合は Floor を通してください。MonthsYears は完了したカレンダー上の単位だけを数えるため、1か月に1日足りない間隔は 0 になります。

Parse Time

blueprint.time.parse · Pure

書かれた日付を読み取り、瞬間に戻します。

ピン方向備考
valuein · datastringカード上での直接入力に対応します。
timestampout · datafloatテキストを読み取れなかった場合は 0 です。
okout · databoolean

書式は ISO 8601 を使用してください。2026-08-14 のように時刻を含まない日付は、ローカルの午前0時として読み取られます。

ok を確認してください。解析に失敗すると 0 が生成されますが、0 は1970年の有効な瞬間でもあります。

To ISO String

blueprint.time.toIsoString · Pure

ある瞬間を UTC の ISO 8601 文字列として書き出します。例: 2026-08-14T07:30:00.000Z。セーブのメタデータや永続変数に時刻を格納する際に使用します。

ピン方向備考
timestampin · datafloatカード上での直接入力に対応します。
resultout · datastring

Parse Time はこれを同じ瞬間として読み戻します。

Is Same Day

blueprint.time.isSameDay · Pure

2つの瞬間が同じローカルのカレンダー日に属するかどうかです。

ピン方向備考
ain · datafloatカード上での直接入力に対応します。
bin · datafloatカード上での直接入力に対応します。
resultout · databoolean

比較の対象はカレンダー上の日です。23:59 と翌朝の 00:30 は30分しか離れていませんが、異なる日に属します。

Start Of Day

blueprint.time.startOfDay · Pure

ある瞬間が属する日の、ローカルの午前0時です。

ピン方向備考
timestampin · datafloatカード上での直接入力に対応します。
resultout · datafloat

Get Time Zone

blueprint.time.zoneOffset · Pure

ゲームが実行されているタイムゾーンです。

ピン方向備考
timestampin · datafloatカード上での直接入力に対応します。問い合わせ対象の瞬間です——サマータイムにより、同じタイムゾーンでも年内で異なるオフセットになることがあります。
offsetMinutesout · datafloatUTC より進んでいる分数です。UTC+8 の場合は 480 です。
nameout · datastringAsia/Shanghai のような IANA 名です。システムが報告しない場合は空文字列です。

セーブの書き込み時刻を表示する

スロットのラベルは Blueprint Value であり、瞬間は Get Save Time が提供します。

  • 絶対的な日付 —— Get Save TimesavedAtFormat Time、またはプレイヤーの言語に追従させるなら Format Time Localized です。
  • 相対的な日付 —— Nowfrom に、savedAtto に接続し、Format Relative Time に渡します。
  • 日単位でのグルーピング —— セーブの Start Of DayNowStart Of Day を比較するか、Is Same Day を使用します。

空のスロットは Get Save Timeexists ピンで判定してください。セーブがない場合、savedAt0 になりますが、0 は有効な瞬間でもあります。

このページの目次