Skip to main content

Date and Time

All Enapter UCMs synchronize the time either with Enapter Cloud or with Enapter Gateway depending on your setup. Normally you could expect less than a second difference with the global time.

os.date

-- @param format string
-- @param time number
-- @return string|table
function os.date(format, time) end

Returns a string or a table containing date and time, formatted according to the given string format.

If the time argument is present, this is the time to be formatted (see the os.time function for a description of this value). Otherwise, date formats the current time.

If format starts with !, then the date is formatted in Coordinated Universal Time. After this optional character, if format is the string "*t", then date returns a table with the following fields:

  • year (four digits)
  • month (1–12)
  • day (1-31)
  • hour (0-23)
  • min (0-59)
  • sec (0-61), due to leap seconds
  • wday (weekday, 1–7, Sunday is 1)
  • yday (day of the year, 1–366)
  • isdst (daylight saving flag, a boolean). This last field may be absent if the information is not available.

If format is not "*t", then date returns the date as a string, formatted according to the same rules as the ISO C function strftime.

When called without arguments, date returns a reasonable date and time representation that depends on the host system and on the current locale. (More specifically, os.date() is equivalent to os.date("%c").)

os.time

-- @param table table Table in the same format as returned by os.date
-- @return number
function os.time(table) end

Returns the current time when called without arguments, or a time representing the date and time specified by the given table. This table must have fields year, month, and day, and may have fields hour (default is 12), min (default is 0), sec (default is 0), and isdst (default is nil). Other fields are ignored. For a description of these fields, see the os.date function.

When the function is called, the values in these fields do not need to be inside their valid ranges. For instance, if sec is -10, it means 10 seconds before the time specified by the other fields; if hour is 1000, it means 1000 hours after the time specified by the other fields.

The returned value is a number of seconds since UNIX epoch start time (UNIX timestamp).

When called with a table, os.time also normalizes all the fields documented in the os.date function, so that they represent the same time as before the call but with values inside their valid ranges.

Hardware diversity is welcome. Integrate any device into a unified energy network.
© 2024 Enapter
Developer toolkit
DocumentationReference