반응형
[lua] Time Function
루아에서는 시스템OS 시간 관련 정보를 취득할수있는 함수가 크게 3가지가 있습니다.
시스템의 날짜와 시간을 알 수 있는 함수 os.date()
UTC+0, 1970년 1월 1일 기준으로 경과한 시간을 알 수 있는 os.time()
프로그램이 첫 실행후 경과한 시간을 알 수 있는 os.clock()
1. 날짜와 시간 함수 os.date()
os.date() 함수는 현재 시스템의 날짜와 시간을 스트링형태의 리턴값을 얻을 수 있는 함수입니다.
local date = os.date()
print('os.date : '..date)
--> os.date : 2022-03-26 17:31:58
인수에 스트링 '*t' 를 입력해줌으로 년, 월, 일, 시, 분, 초, 요일, 섬머타임여부 등을 Key를 가지는 딕셔너리 형태의 테이블로 반환 받을수 있습니다.
key와 value 테이블 형태 예시)
{year = 1998, month = 9, day = 16, yday = 259, wday = 4, hour = 23, min = 48, sec = 10, isdst = false}
테이블 형태로 저장된 시간값을 출력하기 위해 for문을 사용하여 테이블을 출력하면 다음과 같은 결과를 얻을수 있습니다.
local dateTable = os.date('*t')
print(type(dateTable))
--> 'table'
for key, value in pairs(dateTable) do
print(key, value)
end
-- > year 2021
-- > month 4
-- > day 16
-- > hour 18
-- > min 25
-- > sec 13
-- > yday 106
-- > wday 6
-- > isdst true
print(dateTable.year, dateTable.month, dateTable.day)
-- > 2021, 4, 16
print(dateTable.hour, dateTable.min, dateTable.sec)
-- > 18, 25, 13
그밖에 인수를 이용해 다양한 형태로 날짜와 시간을 원하는 형식으로 데이터를 취득할 수 있습니다.
%a | abbreviated weekday name (e.g., Wed) |
%A | full weekday name (e.g., Wednesday) |
%b | abbreviated month name (e.g., Sep) |
%B | full month name (e.g., September) |
%c | date and time (e.g., 09/16/98 23:48:10) |
%d | day of the month (16) [01-31] |
%H | hour, using a 24-hour clock (23) [00-23] |
%I | hour, using a 12-hour clock (11) [01-12] |
%M | minute (48) [00-59] |
%m | month (09) [01-12] |
%p | either "am" or "pm" (pm) |
%S | second (10) [00-61] |
%w | weekday (3) [0-6 = Sunday-Saturday] |
%x | date (e.g., 09/16/98) |
%X | time (e.g., 23:48:10) |
%Y | full year (1998) |
%y | two-digit year (98) [00-99] |
%% | the character `%´ |
-- 샘플1. 원하는 날짜 데이터를 문자열과 반환
print(os.date('오늘은 %a요일, %b월 %d일 입니다.'))
-- > '오늘은 토요일, 3월 26일 입니다.'
-- 샘플2. 년월일 반환
date = os.date('%x')
print(date)
-- > 2022-03-26
-- 샘플3. 시간 반환
time = os.date('%X')
print(time)
-- > 17:29:31
-- 샘플4. 요일 반환 (0:일, 1:월, 2:화, 3:수, 4:목, 5:금, 6:토)
weekday = os.date('%w')
print(weekday)
-- > 6
시간 약속을 잘 할 수 있을것 같습니다.
참고문헌 : Lua 5.4 Reference Manual 22.1 – Date and Time
반응형
'이미지맥스 그리고 루아(lua) > 루아(lua)' 카테고리의 다른 글
[lua] 시간 설정 및 경과 확인 함수 getClock() setClock() (0) | 2021.05.12 |
---|---|
[lua] 루아에서 sleep() 함수를 구현하기 (0) | 2021.05.10 |
[lua] 랜덤한 문자열 생성하기 -2- (함수화) (0) | 2021.04.26 |
[lua] 랜덤한 문자열 생성하기 -1- (기본편) (0) | 2021.04.24 |
[lua] 테이블 길이 확인 Table Value Lenth (0) | 2021.03.28 |