os

显示已弃用

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

当前图书馆的目的是提供有关系统时间以 UTC 格式的信息。它已被重度沙箱从标准 Lua 图书馆 os 库,不允许您执行任何系统改造操作。

概要

职能

  • 返回一个随机基准精度为子微秒级的时间,从秒开始。

  • date(formatString : string,time : number):Dictionary

    根据给定的时间对给定的字符串进行格式化。

  • 返回从一个时间到另一个时间的秒数。

  • time(time : table):number

    返回从 Unix 时代(1970 年 1 月 1 日,00:00:00)开始的时间到达现在的 UTC 时间。

职能

clock

返回从子微秒精度的任意基准时间以秒计时。这个函数对于比较两个事件发生在同一电脑上的时间有用,是最佳选择进行测试。

os.time()DateTime.now() 等函数不同,调整系统时钟 (例如通过用户或 NTP) 不会导致时间向前或向后跳转。


-- 记录初始时间:
local startTime = os.clock()
-- 做您想要测试性能的事情:
local a, b = 0, 1
for _ = 1, 5000000 do
a, b = b, a
end
-- 测量这需要花的时间:
local deltaTime = os.clock() - startTime
print("Elapsed time: " .. deltaTime)
--> Elapsed time: 0.044425600033719 (actual number may vary)

返回

使用指定的时间/时间信息对给定的 formatString 格式,或不提供时,返回 os.time() 的值。

在新工作中避免此函数。 相反,请使用 DateTime API,这是本地化格式的支持。

以下特殊符号(基于 C 函数 strrtime)已支持:


<tbody>
<tr>
<td>%a</td>
<td>缩写的周一到周五名称\*</td>
<td>月</td>
</tr>
<tr>
<td>%A</td>
<td>全周一至周五名称\*</td>
<td>星期一</td>
</tr>
<tr>
<td>%b</td>
<td>缩写月名\*</td>
<td>2月</td>
</tr>
<tr>
<td>%B</td>
<td>全月名称\*</td>
<td>二月</td>
</tr>
<tr>
<td>%c</td>
<td>日期和时间\*</td>
<td>周一 21214:14:35 2024</td>
</tr>
<tr>
<td>%d</td>
<td>月的第几天</td>
<td>12</td>
</tr>
<tr>
<td>%H</td>
<td>使用 24 小时的时钟</td>
<td>14</td>
</tr>
<tr>
<td>%I</td>
<td>使用 12 小时的时钟</td>
<td>02</td>
</tr>
<tr>
<td>%j</td>
<td>年的第几天</td>
<td>043</td>
</tr>
<tr>
<td>%m</td>
<td>月</td>
<td>02</td>
</tr>
<tr>
<td>%M</td>
<td>分钟</td>
<td>14</td>
</tr>
<tr>
<td>%p</td>
<td>“上午”或“下午”</td>
<td>下午</td>
</tr>
<tr>
<td>%S</td>
<td>秒</td>
<td>35</td>
</tr>
<tr>
<td>%U</td>
<td>第一周(第一个星期日为第一个星期一)</td>
<td>06</td>
</tr>
<tr>
<td>%w</td>
<td>周一到周五</td>
<td>1</td>
</tr>
<tr>
<td>%W</td>
<td>周号(第一个星期一为第一天)</td>
<td>07</td>
</tr>
<tr>
<td>%x</td>
<td>日期\*</td>
<td>02/12/24</td>
</tr>
<tr>
<td>%X</td>
<td>时间\*</td>
<td>14:14:35</td>
</tr>
<tr>
<td>%</td>
<td>两位数年</td>
<td>24</td>
</tr>
<tr>
<td>%</td>
<td>全年</td>
<td>2024</td>
</tr>
<tr>
<td>%z</td>
<td>ISO 8601 从 UTC 在时区(1 分钟 = 11 小时 = 100)</td>
<td>0800</td>
</tr>
<tr>
<td>%Z</td>
<td>时区名称或缩写 \*</td>
<td>PST</td>
</tr>
<tr>
<td>%</td>
<td>% 字符</td>
<td>%</td>
</tr>
</tbody>
指定器意义示例 ^

* 此值可以根据当前地区变化。

※ 提供的示例为 2024年2月12日(周一) 2:14:35(太平洋标准时间),请使用本地时间“en-us”在太平洋标准时间(PST)运行。

如果提供的 formatString 正确地是 "*t" (当地时间) 或 "!*t" (UTC 时间),这个函数将返回一个包含以下组件的字典,其通常可以在上面的特殊符号中找到。


<tbody>
<tr>
<td>年</td>
<td>int</td>
<td>描述当前时代的当前年度(例子 2017)</td>
</tr>
<tr>
<td>月</td>
<td>int</td>
<td>一个数字,数值在 112 之间(从 1 月开始),描述当前月。</td>
</tr>
<tr>
<td>wday</td>
<td>int</td>
<td>一个数字,数值在 17 之间(从周日开始),描述当前的周一到周六。</td>
</tr>
<tr>
<td>yday</td>
<td>int</td>
<td>一个数字,数量 1366 描述我们到达一年的时间。如果是跳年,可能有 366 天。</td>
</tr>
<tr>
<td>天</td>
<td>int</td>
<td>一个数量在 131 之间,描述当前月的当天。</td>
</tr>
<tr>
<td>小时</td>
<td>int</td>
<td>一个数字,数值在 124 之间。描述当前时间的当前时间。</td>
</tr>
<tr>
<td>分</td>
<td>int</td>
<td>一个数量在 059 之间,描述当前时间的小时。</td>
</tr>
<tr>
<td>秒</td>
<td>int</td>
<td>一个数量在 060 之间,描述当前时间的秒。(60 因为函数是描述跳跃秒, 但在实践中可能不会).</td>
</tr>
<tr>
<td>isd</td>
<td>boolean</td>
<td>一个描述当前是否启用日光节省时间的Boolean。</td>
</tr>
</tbody>
类型描述

参数

formatString: string

必须是 "*t""!*t"

time: number

格式时间值。

difftime

返回从 t1t2 的时间。 差异是按照假设计时 t1 和 1> t21> 正确投射到 4>时间_t4> 格式。

参数

t2: number
t1: number

返回

time

返回在 Unix 时代(1970年1月1日,00:00:00)之后,按当前 UTC 时间计算的秒数。如果提供表按照该返回的表格式同样返回,它将返回从那时起的秒数。

注意,返回时间使用设备的本地时钟。大多数操作系统都会自动同步其本地时间与在线时间服务器,因此在几百毫秒内内容。但是,用户可以轻松禁用同步行为并将系统时间设置为任何他想要的时间; 对于客户端和服务器之间的同步时间,请使用 Workspace:GetServerTimeNow()

在新工作中避免此函数。 相反,请使用 DateTime API,这是本地化格式的支持。

当您需要精确测量时间中两点之间的时间,例如测试性能时,请使用 os.clock()

参数

time: table

一个用于描述特定时间的字典表,与 os.date() 返回的时间类似。如果未提供,则使用当前 UTC 时间。

默认值:UTC time

返回