/time

/time

图片处理:未转载源站游戏图像;具体物品、实体、效果或界面说明以中文文字保留。

原文:Commands/time;源修订:3886905。

权限等级:Java 版为 2,基岩版为 1;基岩版需要开启作弊。更改或查询世界的游戏时间,或世界时钟的时间。源页面标记基岩版世界时钟功能相关内容需要更新。

用法

本命令涉及以下时间概念:

  • Gametime(游戏总时间):世界已经过的游戏刻总数。以 64 位有符号整数存储,但返回时对 2^31 - 1 取模。
  • Daylight cycle time(昼夜循环时间,又称 internal daytime):昼夜循环已经过的游戏刻总数。游戏规则 advance_time 为 false 时不增加。
  • Daytime(日内时间):当前日从日出开始经过的游戏刻数,等于昼夜循环时间对 24000 取模。
  • Day(天数):昼夜循环已经过的天数,等于昼夜循环时间除以 24000 后向下取整。
  • World clock time(世界时钟时间):世界时钟所设置的时间。

Java 版中,如果世界被 /tick 冻结,前四种时间不会流逝。

Java 版的 /time set ... 总是直接把昼夜循环时间设为指定数值。基岩版中,如果指定 time: TimeSpec,命令会增加昼夜循环时间,使其达到指定的时刻。

例如,Java 版执行 /time set day 或 /time set 1000 都会把昼夜循环时间设为 1000,使 day 返回 0。基岩版执行 /time set 1000 也会直接设为 1000;但执行 /time set day 时,如果当前昼夜循环时间为 25001(1 天加 1001 刻),它不会变成 1000 或 25000,因为使用 TimeSpec 只会增加时间。它会变为 49000(2 天加 1000 刻),day 变为 2。若当前时间已为 25000(1 天加 1000 刻),则保持不变。

语法

Java 版:

语法 作用
time add <time>;time of <clock> add <time> 给指定世界时钟的昼夜循环时间加上 <time>。
time pause;time of <clock> pause 暂停指定世界时钟。
time query gametime 查询世界经过的游戏刻数,返回时按上述规则取模。
time query time;time of <clock> query time 查询 <clock> 已经过的游戏刻数。
time query <timeline> repetition;time of <clock> query <timeline> repetition 查询 <clock> 的 <timeline> 已经过的重复次数。
time query <timeline>;time of <clock> query <timeline> 查询 <clock> 的 <timeline> 本次重复中已过去的游戏刻数。
time rate <rate>;time of <clock> rate <rate> 设置指定世界时钟的时间推进速率倍数。
time resume;time of <clock> resume 恢复指定世界时钟。
time set (<time>|<timemarker>);time of <clock> set (<time>|<timemarker>) 将指定世界时钟的昼夜循环时间设为数值或时间标记,例如 day、night、noon、midnight。

基岩版:

语法 作用
time add <amount: int> 给昼夜循环时间增加指定值。
time query <daytime|gametime|day> 查询当前时间。
time set <amount: int>;time set <time: TimeSpec> 设置昼夜循环时间。

参数

time(time)或 amount: int(int):指定要增加或设置的时间。Java 版最小值为 0。

daytime|gametime|day:指定查询的时间类型,必须为这三个值之一。

Java 版的 day|night|noon|midnight,或基岩版的 time: TimeSpec:指定要设置的时间,取下列值:

图标 值 游戏刻
sunrise(仅基岩版) 23000
day 1000
noon 6000
sunset(仅基岩版) 12000
night 13000
midnight 18000

Java 版的 clock(resource):指定要操作的世界时钟。省略 of <clock> 时,默认为执行维度的默认世界时钟。当前只有主世界与末地具有默认世界时钟,分别为 minecraft:overworld 和 minecraft:the_end。在没有默认世界时钟的维度中省略该参数会产生错误。必须是 minecraft:world_clock 注册表中条目的命名空间标识符。

Java 版的 timemarker(resource):指定要设置到的时间标记,必须为命名空间标识符。执行时,命令会尝试据此获取未注册项目,或将标识符发送至客户端处理。

Java 版的 timeline(resource):指定要查询的时间线,必须是 minecraft:timeline 注册表中条目的命名空间标识符。

结果

命令不完整或任意参数指定不正确时无法解析。

指定世界时钟不存在、当前维度没有默认世界时钟、时间线不属于指定时钟、时间标记不存在,或时钟已经处于所指定的时间、暂停状态、运行状态或速率时,产生错误。其他情况成功。

输出

源修订输出表列出的 Java 版结果:成功次数与 success 均为 1;add、set 的 result 为执行后的日内时间(昼夜循环时间对 24000 取模);query 的 result 为查询到的值。

基岩版失败时成功次数为 0,成功时为 1。

示例

把昼夜循环时间设为 1000:

time set 1000

给昼夜循环时间增加一天:

time add 24000

更改或重置游戏内天数为指定值:time set <desired day number*24000+time of day in ticks>。例如,设为第 472 天的正午(6000):

time set 11334000

外部链接

Microsoft Learn:/time 命令(2023 年 10 月 11 日)。

来源为 Minecraft Wiki;本中文翻译/改编按 CC BY-NC-SA 3.0 共享。