NarraLeaf

时间

读取当前时间、处理日期,以及把一个时刻格式化为文本

十五个纯节点,用于读取当前时间与处理日期。Now 读取当前时刻。Make TimeGet Time Parts 在时刻与日历字段之间转换。Add TimeTime Difference 按每个月的实际长度做运算。四个格式化节点把时刻转成文本

常见用途是存档界面。要让槽位显示它的写入时间,把 Get Save Time 接到本页任一格式化节点

约定

  • 本页每个节点都是 Pure 它们都没有执行引脚,可用于 eventfunctionmacro 图,也可用于 Blueprint Value。存档槽位的标签属于 Blueprint Value
  • 一个时刻是一个数:1970 年 1 月 1 日 UTC 以来的毫秒数,走 float 引脚。 Get Save TimeGet Latest Auto Save 产出的即为这个单位,因此存档时间可以直接接进本页任何节点
  • 本页没有时间比较节点。 时刻越晚数值越大,因此 Math 里的 <>MinMax 已可用于比较与排序两个时刻
  • 日历取玩家本地时区。 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

Now(当前时间)读取当前时刻

引脚方向类型说明
timestampout · datafloat

Make Time

blueprint.time.make · Pure

Make Time(构建时间)用本地日历字段构建一个时刻

引脚方向类型说明
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

超出范围的字段会进位到上一级。month 填 13 得到下一年的一月;day 填 0 得到上一个月的最后一天,用它即可取到某个月的月末,不需要专门的节点

Get Time Parts

blueprint.time.parts · Pure

Get Time Parts(获取时间分量)把一个时刻拆成本地日历字段

引脚方向类型说明
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

Format Time(格式化时间)按模板把一个时刻渲染成文本

引脚方向类型说明
timestampin · datafloat支持卡片字面量
patternin · datastring支持卡片字面量。留空时按 YYYY-MM-DD HH:mm 处理
resultout · datastring
标记产生示例
YYYY四位年份2026
YY两位年份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' D 得到 Day 14。连续两个单引号输出一个单引号

Format Time Localized

blueprint.time.formatLocalized · Pure

Format Time Localized(按语言格式化时间)按某种语言的书写习惯渲染一个时刻

引脚方向类型说明
timestampin · datafloat支持卡片字面量
localein · datastring支持卡片字面量。BCP 47 标记,如 en-USzh-CN。留空表示玩家的系统语言
resultout · datastring

卡片字段

字段含义
日期样式完整。默认为
时间样式同样五项。默认为

两个样式都设为 时结果为空字符串。系统无法识别的标记回退到玩家的语言

该节点不会读取游戏当前语言。把 Get Current Language 接到 locale,日期即跟随玩家在游戏中选择的语言

Format Relative Time

blueprint.time.formatRelative · Pure

Format Relative Time(格式化相对时间)用文字描述两个时刻的间隔:5 分钟前2 天后

引脚方向类型说明
fromin · datafloat支持卡片字面量。基准点,通常接 Now
toin · datafloat支持卡片字面量。被描述的时刻
localein · datastring支持卡片字面量。规则同 Format Time Localized
resultout · datastring

卡片字段

字段含义
措辞自动 允许该语言使用「昨天」这类词。始终用数字 一律计数。默认为 自动

单位跟随间隔大小:不足一分钟用秒,其后依次是分、时、天、月、年

Format Duration

blueprint.time.formatDuration · Pure

Format Duration(格式化时长)把一段时长渲染成时钟读数

引脚方向类型说明
millisecondsin · datafloat支持卡片字面量
resultout · datastring

卡片字段

字段含义
排布自动 只在有小时时显示小时(1:052:03:04)。时分秒 总是显示(00:01:05)。分秒 从不显示(01:05)。默认为 自动

小时会持续累加,不进位成天:三十小时的游戏时长显示为 30:00:00

输出只有数字与分隔符。1 小时 20 分 这类写法需要翻译,请从 Get Duration Parts 取出数字,再用 Format Text 拼装

Get Duration Parts

blueprint.time.durationParts · Pure

Get Duration Parts(获取时长分量)把一段时长拆成各级单位

引脚方向类型说明
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

Add Time(时间偏移)把一个时刻前移或后移

引脚方向类型说明
timestampin · datafloat支持卡片字面量
amountin · datafloat支持卡片字面量。负数表示往前
resultout · datafloat

卡片字段

字段含义
单位毫秒分钟小时。默认为

按日历计算,并停在目标月份的最后一天:1 月 31 日加一个月是 2 月 28 日,闰年是 29 日

Time Difference

blueprint.time.difference · Pure

Time Difference(时间差)计算 tofrom,以选定的单位表示

引脚方向类型说明
fromin · datafloat支持卡片字面量
toin · datafloat支持卡片字面量
differenceout · datafloatto 早于 from 时为负

卡片字段

字段含义
单位Add Time。默认为

固定长度的单位保留小数:九十分钟以小时表示为 1.5,需要整数时再接一个 Floor 只计入走完的整个日历单位,因此相差一天不满一个月时结果为 0

Parse Time

blueprint.time.parse · Pure

Parse Time(解析时间)把写好的日期文本读回一个时刻

引脚方向类型说明
valuein · datastring支持卡片字面量
timestampout · datafloat文本读不出来时为 0
okout · databoolean

要写的格式是 ISO 8601。只有日期、没有时间的写法(如 2026-08-14)按本地零点读取

请读取 ok。解析失败时输出 0,而 0 同时也是 1970 年的一个有效时刻

To ISO String

blueprint.time.toIsoString · Pure

To ISO String(转为 ISO 字符串)把一个时刻写成 UTC 的 ISO 8601 字符串:2026-08-14T07:30:00.000Z。用于把时间写入存档 metadata 或持久变量

引脚方向类型说明
timestampin · datafloat支持卡片字面量
resultout · datastring

Parse Time 可将它读回同一个时刻

Is Same Day

blueprint.time.isSameDay · Pure

Is Same Day(是否同一天)判断两个时刻是否落在本地日历的同一天

引脚方向类型说明
ain · datafloat支持卡片字面量
bin · datafloat支持卡片字面量
resultout · databoolean

比较的是日历日:23:59 与次日 00:30 相差半小时,分属两天

Start Of Day

blueprint.time.startOfDay · Pure

Start Of Day(当天零点)取一个时刻所在那一天的本地零点

引脚方向类型说明
timestampin · datafloat支持卡片字面量
resultout · datafloat

Get Time Zone

blueprint.time.zoneOffset · Pure

Get Time Zone(获取时区)读取游戏运行所在的时区

引脚方向类型说明
timestampin · datafloat支持卡片字面量。要询问的时刻——夏令时会让同一个时区在一年中有不同的偏移
offsetMinutesout · datafloat早于 UTC 的分钟数。UTC+8 为 480
nameout · datastringIANA 名称,如 Asia/Shanghai。系统不提供时为空字符串

显示存档的写入时间

槽位的标签是一个 Blueprint Value,时刻由 Get Save Time 提供:

  • 绝对时间——Get Save TimesavedAtFormat Time,或用 Format Time Localized 跟随玩家语言
  • 相对时间——NowfromsavedAtto,再接 Format Relative Time
  • 按天分组——把存档的 Start Of DayNowStart Of Day 比较,或用 Is Same Day

空槽位读 Get Save Timeexists 引脚判断。没有存档时 savedAt0,而 0 同时也是一个有效时刻

本页目录