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¶
calendar
Table containing calendar info.year
1970 ~ 2038mon
month 1 ~ 12 in current yearday
day 1 ~ 31 in current monthhour
min
sec
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¶
time
number of seconds since the Epoch
Returns¶
A table containing the fields:
year
1970 ~ 2038mon
month 1 ~ 12 in current yearday
day 1 ~ 31 in current monthhour
min
sec
yday
day 1 ~ 366 in current yearwday
day 1 ~ 7 in current weak (Sunday is 1)dst
day 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:
sec
seconds since the Unix epochusec
the 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:
year
1970 ~ 2038mon
month 1 ~ 12 in current yearday
day 1 ~ 31 in current monthhour
min
sec
yday
day 1 ~ 366 in current yearwday
day 1 ~ 7 in current weak (Sunday is 1)dst
day 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¶
ntpAddr
address 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¶
time
number 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¶
timezone
a 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")