Class pl.Date
Date and Date Format classes.
See the Guide.
NOTE: the date module is deprecated! see https://github.com/lunarmodules/Penlight/issues/285
Dependencies: pl.class, pl.stringx, pl.utils
Functions
Date:set (t) | set the current time of this Date object. |
Date.tzone (ts) | get the time zone offset from UTC. |
Date:toUTC () | convert this date to UTC. |
Date:toLocal () | convert this UTC date to local. |
Date:year (y) | set the year. |
Date:month (m) | set the month. |
Date:day (d) | set the day. |
Date:hour (h) | set the hour. |
Date:min (min) | set the minutes. |
Date:sec (sec) | set the seconds. |
Date:yday (yday) | set the day of year. |
Date:year (y) | get the year. |
Date:month () | get the month. |
Date:day () | get the day. |
Date:hour () | get the hour. |
Date:min () | get the minutes. |
Date:sec () | get the seconds. |
Date:yday () | get the day of year. |
Date:weekday_name (full) | name of day of week. |
Date:month_name (full) | name of month. |
Date:is_weekend () | is this day on a weekend?. |
Date:add (t) | add to a date object. |
Date:last_day () | last day of the month. |
Date:diff (other) | difference between two Date objects. |
Date:__tostring () | long numerical ISO data format version of this date. |
Date:__eq (other) | equality between Date objects. |
Date:__lt (other) | ordering between Date objects. |
Date:__sub () | difference between Date objects. |
Date:__add (other) | add a date and an interval. |
Date.Interval (t) | Date.Interval constructor |
Date.Interval:__tostring () | If it's an interval then the format is '2 hours 29 sec' etc. |
Date.Format (fmt.) | Date.Format constructor. |
Date.Format:parse (str) | parse a string into a Date object. |
Date.Format:tostring (d) | convert a Date object into a string. |
Date.Format:US_order (yesno) | force US order in dates like 9/11/2001 |
Methods
pl.date:Date (t, ...) | Date constructor. |
Functions
- Date:set (t)
-
set the current time of this Date object.
Parameters:
- t integer seconds since epoch
- Date.tzone (ts)
-
get the time zone offset from UTC.
Parameters:
- ts integer seconds ahead of UTC
- Date:toUTC ()
- convert this date to UTC.
- Date:toLocal ()
- convert this UTC date to local.
- Date:year (y)
-
set the year.
Parameters:
- y integer Four-digit year
- Date:month (m)
-
set the month.
Parameters:
- m integer month
- Date:day (d)
-
set the day.
Parameters:
- d integer day
- Date:hour (h)
-
set the hour.
Parameters:
- h integer hour
- Date:min (min)
-
set the minutes.
Parameters:
- min integer minutes
- Date:sec (sec)
-
set the seconds.
Parameters:
- sec integer seconds
- Date:yday (yday)
-
set the day of year.
Parameters:
- yday integer day of year
- Date:year (y)
-
get the year.
Parameters:
- y integer Four-digit year
- Date:month ()
- get the month.
- Date:day ()
- get the day.
- Date:hour ()
- get the hour.
- Date:min ()
- get the minutes.
- Date:sec ()
- get the seconds.
- Date:yday ()
- get the day of year.
- Date:weekday_name (full)
-
name of day of week.
Parameters:
- full boolean abbreviated if true, full otherwise.
Returns:
-
string
name
- Date:month_name (full)
-
name of month.
Parameters:
- full integer abbreviated if true, full otherwise.
Returns:
-
string
name
- Date:is_weekend ()
- is this day on a weekend?.
- Date:add (t)
-
add to a date object.
Parameters:
Returns:
-
this date
- Date:last_day ()
-
last day of the month.
Returns:
-
int day
- Date:diff (other)
-
difference between two Date objects.
Parameters:
- other Date Date object
Returns:
-
Date.Interval
object
- Date:__tostring ()
- long numerical ISO data format version of this date.
- Date:__eq (other)
-
equality between Date objects.
Parameters:
- other
- Date:__lt (other)
-
ordering between Date objects.
Parameters:
- other
- Date:__sub ()
- difference between Date objects.
- Date:__add (other)
-
add a date and an interval.
Parameters:
- other either a Date.Interval object or a table such as passed to Date:add
- Date.Interval (t)
-
Date.Interval constructor
Parameters:
- t integer an interval in seconds
- Date.Interval:__tostring ()
- If it's an interval then the format is '2 hours 29 sec' etc.
- Date.Format (fmt.)
-
Date.Format constructor.
Parameters:
- fmt.
string
A string where the following fields are significant:
- d day (either d or dd)
- y year (either yy or yyy)
- m month (either m or mm)
- H hour (either H or HH)
- M minute (either M or MM)
- S second (either S or SS)
Alternatively, if fmt is nil then this returns a flexible date parser that tries various date/time schemes in turn:
- ISO 8601, like
2010-05-10 12:35:23Z
or2008-10-03T14:30+02
- times like 15:30 or 8.05pm (assumed to be today's date)
- dates like 28/10/02 (European order!) or 5 Feb 2012
- month name like march or Mar (case-insensitive, first 3 letters); here the day will be 1 and the year this current year
A date in format 3 can be optionally followed by a time in format 2. Please see test-date.lua in the tests folder for more examples.
Usage:
df = Date.Format("yyyy-mm-dd HH:MM:SS")
- fmt.
string
A string where the following fields are significant:
- Date.Format:parse (str)
-
parse a string into a Date object.
Parameters:
- str string a date string
Returns:
-
date object
- Date.Format:tostring (d)
-
convert a Date object into a string.
Parameters:
- d a date object, or a time value as returned by os.time
Returns:
-
string
- Date.Format:US_order (yesno)
-
force US order in dates like 9/11/2001
Parameters:
- yesno
Methods
- pl.date:Date (t, ...)
-
Date constructor.
Parameters:
- t
this can be either
nil
or empty - use current date and time- number - seconds since epoch (as returned by os.time). Resulting time is UTC
- Date - make a copy of this date
- table - table containing year, month, etc as for os.time. You may leave out year, month or day, in which case current values will be used.
- year (will be followed by month, day etc)
- ... true if Universal Coordinated Time, or two to five numbers: month,day,hour,min,sec
- t