Time/NTP Module¶
| Since | Origin / Contributor | Maintainer | Source |
|---|---|---|---|
| 2018-11-25 | Skirmantas Lauzikas | Skirmantas Lauzikas | time.c |
This module offers facilities for converting between Unix time and calendar, setting/getting system time, locale and control of NTP client.
time.cal2epoch()¶
Converts calendar table to a timestamp in Unix epoch
Syntax¶
time.cal2epoch(calendar)
Parameters¶
calendarTable containing calendar info.year1970 ~ 2038monmonth 1 ~ 12 in current yeardayday 1 ~ 31 in current monthhourminsec
Returns¶
number of seconds since the Epoch
Example¶
calendar={}
calendar.year = 2018-11-20
calendar.mon = 11
calendar.day = 20
calendar.hour = 1
calendar.min = 40
calendar.sec = 50
timestamp = time.cal2epoch(calendar)
time.set(timestamp)
time.epoch2cal()¶
Converts timestamp in Unix epoch to calendar format
Syntax¶
time.epoch2cal(time)
Parameters¶
timenumber of seconds since the Epoch
Returns¶
A table containing the fields:
year1970 ~ 2038monmonth 1 ~ 12 in current yeardayday 1 ~ 31 in current monthhourminsecydayday 1 ~ 366 in current yearwdayday 1 ~ 7 in current weak (Sunday is 1)dstday time adjustment:- 1 (DST in effect, i.e. daylight time)
- 0 (DST not in effect, i.e. standard time)
- -1 (Unknown DST status)
Example¶
--Gets current time calendar format, no locale adjustment
time = time.epoch2cal(time.get())
print(string.format("%04d-%02d-%02d %02d:%02d:%02d DST:%d", time["year"], time["mon"], time["day"], time["hour"], time["min"], time["sec"], time["dst"]))
time.get()¶
Returns current system time in the Unix epoch (seconds from midnight 1970/01/01).
Syntax¶
time.get()
Parameters¶
none
Returns¶
A two-value timestamp consisting of:
secseconds since the Unix epochusecthe microseconds part
Example¶
sec, usec = time.get()
See also¶
time.getlocal()¶
Returns current system time adjusted for the locale in calendar format.
Syntax¶
time.getlocal()
Parameters¶
none
Returns¶
A table containing the fields:
year1970 ~ 2038monmonth 1 ~ 12 in current yeardayday 1 ~ 31 in current monthhourminsecydayday 1 ~ 366 in current yearwdayday 1 ~ 7 in current weak (Sunday is 1)dstday time adjustment:- 1 (DST in effect, i.e. daylight time)
- 0 (DST not in effect, i.e. standard time)
- -1 (Unknown DST status)
Example¶
localTime = time.getlocal()
print(string.format("%04d-%02d-%02d %02d:%02d:%02d DST:%d", localTime["year"], localTime["mon"], localTime["day"], localTime["hour"], localTime["min"], localTime["sec"], localTime["dst"]))
time.initntp()¶
Initializes and starts NTP client
Syntax¶
time.initntp([ntpAddr])
Parameters¶
ntpAddraddress of a NTP server, defaults to "pool.ntp.org" if none is specified
Returns¶
nil
Example¶
time.initntp("pool.ntp.org")
time.ntpenabled()¶
Checks if NTP client is enabled.
Syntax¶
time.ntpenabled()
Parameters¶
none
Returns¶
true if NTP client is enabled.
time.ntpstop()¶
Stops NTP client.
Syntax¶
time.ntpstop()
Parameters¶
none
Returns¶
nil
time.set()¶
Sets system time to a given timestamp in the Unix epoch (seconds from midnight 1970/01/01).
Syntax¶
time.set(time)
Parameters¶
timenumber of seconds since the Epoch
Returns¶
nil
Example¶
--set time to 2018-11-20 01:40:50
time.set(1542678050)
See also¶
time.settimezone()¶
Sets correct format for Time Zone locale
Syntax¶
time.settimezone(timezone)
Parameters¶
timezonea string representing timezone, can also include DST adjustment. For full syntax see TZ variable documentation.
Returns¶
nil
Example¶
--set timezone to Eastern Standard Time
time.settimezone("EST+5")