os

顯示已棄用項目

*此內容是使用 AI(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 功能 strftime)被支持:


<th>意義</th>
<th>範例 <sup>†</sup></th>
</tr>
</thead>
<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>二月 12, 2024 14:14:35</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>PM</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>%y</td>
<td>兩位數年份</td>
<td>24</td>
</tr>
<tr>
<td>%Y</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 (14:14:35),使用本地「en-us」在太平洋標準時間 (PST) 運行。

如果提供的 formatString 是準確的 "*t" (本地時間)或 "!*t" (UTC時間),這個函數會返回包含以下組件的字典,這通常在上面的規格器中可用。


<th>類型</th>
<th>說明</th>
</tr>
</thead>
<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>isdst</td>
<td>bool</td>
<td>一個是否描述如果日光節約時間目前是否啟用。</td>
</tr>
</tbody>
字段

參數

formatString: string

必須是 "*t""!*t"

time: number

要格式化的時間值。

difftime

返回從 t1t2 的秒數。不同之處是假設 t1t2 正確地轉換為 time_t 格式。

參數

t2: number
t1: number

返回

time

返回自 Unix 時代(1970 年 1 月 1 日 00:00:00)以來已過的秒數,在目前的 UTC 時間下。如果提供一個表格格式與 os.date() 返回的類似,它將返回自那時起的秒數。

請注意,返回的時間使用裝置的本地時間。大多數作業系統會自動將本地時間同步到線上時間伺服器,因此這應該在幾百毫秒內。然而,使用者可以輕鬆禁用同步行為,並將系統時間設為他們想要的任何東西;對於客戶端和服務器之間的同步時間,請使用 Workspace:GetServerTimeNow() 取代。

在新工作中應避免使用此功能。取而代之,使用 DateTime API,它支持本地化格式。

當您需要精確測量兩個時間點之間的時間差,例如測試履約時,請使用 os.clock() 取代。

參數

time: table

一個字典表描述特定時間,類似於由 os.date() 返回的時間。如果未提供,將使用當前的 UTC 時間。

預設值:UTC time

返回