OS 시간
OS 시간
섹션 제목: “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
파라미터:
| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
year | number | 현재 연도 | 4자리 연도 (예: 2024) |
month | number | 현재 월 | 월 1-12 |
day | number | 현재 일 | 월의 일 1-31 |
hour | number | 0 | 시 0-23 |
min | number | 0 | 분 0-59 |
sec | number | 0 | 초 0-59 |
인수 없이 호출하면 현재 Unix 타임스탬프를 반환합니다.
테이블과 함께 호출하면 누락된 필드는 위에 표시된 기본값을 사용합니다. year, month, day 필드는 지정되지 않으면 현재 날짜가 기본값입니다.
-- 날짜만 (시간은 자정이 기본값)os.time({year = 2024, month = 6, day = 15})
-- 부분 지정 (현재 연도/월 사용)os.time({day = 1}) -- 현재 월의 1일날짜 포맷팅
섹션 제목: “날짜 포맷팅”타임스탬프를 문자열로 포맷하거나 날짜 테이블을 반환합니다:
— 기본 포맷 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
| 파라미터 | 타입 | 기본값 | 설명 |
|---|---|---|---|
format | string | "%c" | 포맷 문자열, 테이블용 "*t" |
timestamp | number | 현재 시간 | 포맷할 Unix 타임스탬프 |
포맷 지정자
섹션 제목: “포맷 지정자”| 코드 | 출력 | 예시 |
|---|---|---|
%Y | 4자리 연도 | 2024 |
%y | 2자리 연도 | 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 |
%p | AM/PM | PM |
%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")| 필드 | 타입 | 설명 | 예시 |
|---|---|---|---|
year | number | 4자리 연도 | 2024 |
month | number | 월 (1-12) | 6 |
day | number | 월의 일 (1-31) | 15 |
hour | number | 시 (0-23) | 14 |
min | number | 분 (0-59) | 30 |
sec | number | 초 (0-59) | 45 |
wday | number | 요일 (1-7, 일요일=1) | 7 |
yday | number | 연중 일 (1-366) | 167 |
isdst | boolean | 일광 절약 시간 | false |
UTC 날짜 테이블은 "!*t"를 사용하세요.
경과 시간 측정
섹션 제목: “경과 시간 측정”Lua 런타임 시작 이후 경과된 초를 가져옵니다:
local start = os.clock()
-- 작업 수행for i = 1, 1000000 do end
local elapsed = os.clock() - startprint(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 - t1local days = diff / 86400print(days) -- 365시그니처: os.difftime(t2, t1) -> number
| 파라미터 | 타입 | 설명 |
|---|---|---|
t2 | number | 나중 타임스탬프 |
t1 | number | 이전 타임스탬프 |
t2 - t1을 초 단위로 반환합니다. t1 > t2이면 음수가 될 수 있습니다.
플랫폼 상수
섹션 제목: “플랫폼 상수”런타임을 식별하는 상수:
os.platform -- "wippy"