[lua] Time Function
: 루아에서는 시스템 OS 시간 관련 정보를 취득할 수 있는 함수 3가지가 있다.
# 요약
os.date() | 시스템의 날짜와 시간을 알 수 있는 함수. |
os.time() | UTC+0, 1970년 1월 1일 기준으로 경과한 시간을 알 수 있는 함수. |
os.clock() | 프로그램이 첫 실행후 경과한 시간을 알 수 있는 함수. |
-- 초기화 기준 시간 세팅.
local deadLineHour = 13 -- 오후 1시 기준으로 초기화 하겠다.
local deadLineSec = deadLineHour * 60 * 60
-- 현재 시간.
local defaultSec = os.time()
-- 현재 시스템의 날짜와 시간을 스트링 형태의 값을 출력.
local date = os.date()
-- 설정한 시간(timestamp 초)을 Date 타입으로 변경.
local nowDate = os.date( "*t", defaultSec - deadLineSec) -- deadLine 미초과 시 다음 날짜 미갱신
-- 설정한 Date를 Time (timestamp(초 1Day = 60*60*24)) 타입으로 추출.
local nowTimeAt = os.time{
year = nowDate.year,
month = nowDate.month,
day = nowDate.day,
hour = nowDate.hour,
min = nowDate.min,
sec = nowDate.sec
}
print( nowTimeAt )
/* 출력 : 1704266112 */
-- 인수에 스트링 '*t' 를 입력해 줌으로 년, 월, 일, 시, 분, 초, 요일, 섬머 타임 여부 등을
-- Key를 가지는 딕셔너리 형태의 테이블로 반환 받을수 있다.
local dateTable = os.date( '*t' )
for key, value in pair(dateTable) do
print( key, value )
end
/* 출력 :
year 2021
month 4
day 16
hour 17
min 35
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 )
-- 출력 : 17, 35, 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 `%´ |
*/
-- 원하는 날짜 데이터를 문자열과 같이 반환
print( os.date('오늘은 %a요일, %b월 %d일 입니다.') )
-- 출력 : '오늘은 토요일, 3월 26일 입니다.'
-- 년 월 일
date = os.date( '%x' )
print( date )
-- 출력 : 2022-03-26
-- 년 월 일 시 분 초
date = os.date( "%Y%m%d%H%M%S", os.time() )
print( date )
-- 출력 : 20220326143000
-- 시간
time = os.date( '%X' )
print( time )
-- 출력 : 17:29:31
-- 요일 (0:일, 1:월, 2:화, 3:수, 4:목, 5:금, 6:토)
weekday = os.date( '%w' )
print( weekday )
-- 출력 : 6
출처 : [lua] 날짜와 시간 함수 os.date() (tistory.com)
'[ Programing ] > Lua Scirpt' 카테고리의 다른 글
[Lua] 날짜 관련. 계산 및 테스트 (0) | 2022.11.10 |
---|---|
[Lua] 매주 이벤트(퀘스트) 주차 초기화 계산. (0) | 2022.04.21 |
Lua - 루아 스크립트 함수를 C++에서 호출하여 활용 (0) | 2022.03.06 |
Lua - 루아 글루 함수를 루아 스크립트에서 활용 (0) | 2022.03.06 |
Lua - C++ 연동 간단한 예제 (0) | 2022.03.06 |