4.2 KiB
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")