본문 바로가기
이미지맥스 그리고 루아(lua)/루아(lua)

[lua] 날짜와 시간 함수 os.date()

by 위치결정 2021. 4. 17.
반응형

[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

 

Programming in Lua : 22.1

This first edition was written for Lua 5.0. While still largely relevant for later versions, there are some differences. The fourth edition targets Lua 5.3 and is available at Amazon and other bookstores. By buying the book, you also help to support the Lu

www.lua.org

 

반응형

댓글