콘텐츠로 이동

OS 시간

표준 Lua os 시간 함수입니다. 타임스탬프, 날짜 포맷팅, 시간 계산을 위한 실제 벽시계 시간을 제공합니다.

전역 os 테이블. require가 필요 없습니다.

os.time()
os.date()
os.clock()
os.difftime()

Unix 타임스탬프 (1970년 1월 1일 UTC 이후 초) 가져오기:

-- 현재 타임스탬프
local now = os.time() -- 1718462445
-- 특정 날짜/시간
local t = os.time({
year = 2024,
month = 12,
day = 25,
hour = 10,
min = 30,
sec = 0
})

시그니처: os.time([spec]) -> number

파라미터:

필드타입기본값설명
yearnumber현재 연도4자리 연도 (예: 2024)
monthnumber현재 월월 1-12
daynumber현재 일월의 일 1-31
hournumber0시 0-23
minnumber0분 0-59
secnumber0초 0-59

인수 없이 호출하면 현재 Unix 타임스탬프를 반환합니다.

테이블과 함께 호출하면 누락된 필드는 위에 표시된 기본값을 사용합니다. year, month, day 필드는 지정되지 않으면 현재 날짜가 기본값입니다.

-- 날짜만 (시간은 자정이 기본값)
os.time({year = 2024, month = 6, day = 15})
-- 부분 지정 (현재 연도/월 사용)
os.time({day = 1}) -- 현재 월의 1일

타임스탬프를 문자열로 포맷하거나 날짜 테이블을 반환합니다:

local now = os.time()

— 기본 포맷 os.date() — “Sat Jun 15 14:30:45 2024”

— 커스텀 포맷 os.date(“%Y-%m-%d”, now) — “2024-06-15” os.date(“%H:%M:%S”, now) — “14:30:45” os.date(“%Y-%m-%dT%H:%M:%S”, now) — “2024-06-15T14:30:45”

— UTC 시간 (포맷 앞에 ! 접두사) os.date(”!%Y-%m-%d %H:%M:%S”, now) — 로컬 대신 UTC

— 날짜 테이블 local t = os.date(“*t”, now)

시그니처: os.date([format], [timestamp]) -> string | table

파라미터타입기본값설명
formatstring"%c"포맷 문자열, 테이블용 "*t"
timestampnumber현재 시간포맷할 Unix 타임스탬프
코드출력예시
%Y4자리 연도2024
%y2자리 연도24
%m월 (01-12)06
%d일 (01-31)15
%H시 24시간 (00-23)14
%I시 12시간 (01-12)02
%M분 (00-59)30
%S초 (00-59)45
%pAM/PMPM
%A요일 이름Saturday
%a요일 약어Sat
%B월 이름June
%b월 약어Jun
%w요일 (0-6, 일요일=0)6
%j연중 일 (001-366)167
%U주 번호 (00-53)24
%z시간대 오프셋-0700
%Z시간대 이름PDT
%c전체 날짜/시간Sat Jun 15 14:30:45 2024
%x날짜만06/15/24
%X시간만14:30:45
%%리터럴 %%

포맷이 "*t"일 때 테이블을 반환합니다:

local t = os.date("*t")
필드타입설명예시
yearnumber4자리 연도2024
monthnumber월 (1-12)6
daynumber월의 일 (1-31)15
hournumber시 (0-23)14
minnumber분 (0-59)30
secnumber초 (0-59)45
wdaynumber요일 (1-7, 일요일=1)7
ydaynumber연중 일 (1-366)167
isdstboolean일광 절약 시간false

UTC 날짜 테이블은 "!*t"를 사용하세요.

Lua 런타임 시작 이후 경과된 초를 가져옵니다:

local start = os.clock()
-- 작업 수행
for i = 1, 1000000 do end
local elapsed = os.clock() - start
print(string.format("Took %.3f seconds", elapsed))

시그니처: os.clock() -> number

두 타임스탬프 간의 차이를 초 단위로 가져옵니다:

local t1 = os.time({year = 2024, month = 1, day = 1})
local t2 = os.time({year = 2024, month = 12, day = 31})
local diff = os.difftime(t2, t1) -- t2 - t1
local days = diff / 86400
print(days) -- 365

시그니처: os.difftime(t2, t1) -> number

파라미터타입설명
t2number나중 타임스탬프
t1number이전 타임스탬프

t2 - t1을 초 단위로 반환합니다. t1 > t2이면 음수가 될 수 있습니다.

런타임을 식별하는 상수:

os.platform -- "wippy"