本圖庫目前用於提供 UTC 格式下系統時間的資訊。它已從標準 Lua os 圖形庫嚴格沙盒化,不允許您執行任何系統變更操作。
概要
函式
clock
返回自領域微秒精度的任意基線以來的時間(秒)。此功能對於比較同一電腦上發生的兩個事件之間的持續時間有用,是最佳的測試選擇。
與功能,例如 os.time() 或 DateTime.now() 不同,調整系統時間 (例如由使用者或 NTP 進行) 不會導致時間向前或向後跳躍。
-- 記錄初始時間:local startTime = os.clock()-- 做你想測量性能的東西:local a, b = 0, 1for _ = 1, 5000000 doa, b = b, aend-- 測量所需時間量:local deltaTime = os.clock() - startTimeprint("Elapsed time: " .. deltaTime)--> Elapsed time: 0.044425600033719 (actual number may vary)
返回
date
格式化指定的 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分鐘=1,1小時=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>介於 1 和 12 之間的整數(從 1 月開始),用於描述當前月份。</td></tr><tr><td>wday</td><td>int</td><td>介於 1 和 7 之間的整數 (從星期日開始),用於描述當前的周日。</td></tr><tr><td>yday</td><td>int</td><td>介於 1 和 366 之間的整數,描述我們進入年度的天數。如果是跳年,可能有 366 天。</td></tr><tr><td>天</td><td>int</td><td>介於 1 和 31 之間的整數,用於描述當前月份的當日。</td></tr><tr><td>小時</td><td>int</td><td>介於 1 和 24 之間的整數,用於描述當前一天的時間。</td></tr><tr><td>分</td><td>int</td><td>介於 0 和 59 之間的整數,用於描述時間的當前分鐘。</td></tr><tr><td>秒</td><td>int</td><td>介於 0 和 60 之間的整數,描述當前小時的第二秒。(60 因為函數是用來指示跳秒,但在實際操作中可能不會)</td></tr><tr><td>isdst</td><td>bool</td><td>一個是否描述如果日光節約時間目前是否啟用。</td></tr></tbody>
字段 |
---|
time
返回自 Unix 時代(1970 年 1 月 1 日 00:00:00)以來已過的秒數,在目前的 UTC 時間下。如果提供一個表格格式與 os.date() 返回的類似,它將返回自那時起的秒數。
請注意,返回的時間使用裝置的本地時間。大多數作業系統會自動將本地時間同步到線上時間伺服器,因此這應該在幾百毫秒內。然而,使用者可以輕鬆禁用同步行為,並將系統時間設為他們想要的任何東西;對於客戶端和服務器之間的同步時間,請使用 Workspace:GetServerTimeNow() 取代。
在新工作中應避免使用此功能。取而代之,使用 DateTime API,它支持本地化格式。
當您需要精確測量兩個時間點之間的時間差,例如測試履約時,請使用 os.clock() 取代。