Datetime - ReFreezed/LuaWebGen GitHub Wiki

Note: The documentation has moved to the LuaWebGen website. Information here may be out of date!

This page describes the date and time format used in LuaWebGen.

The calendrical calculations always assume a Gregorian calendar, with no leap seconds.

Datetime strings must have numbers/words representing date and optionally time. Use commas and spaces as delimiters. The stated day of the week is ignored whether it's correct or not. A string containing an invalid date is an error (e.g. a string containing two years or two months is an error).


Time Format

Hours, minutes, and seconds are separated by colons, although all need not be specified. "10:", "10:11", and "10:11:12" are all valid. If the 24-hour clock is used, it is an error to specify "PM" for times later than 12 noon. For example, "23:15 PM" is an error.

Time Zone Format

First character is a sign "+" (east of UTC) or "-" (west of UTC). Hour and minute offsets are separated by a colon.

Jul 27 2006 03:56:28 +2:00

Another format is [sign][number] without colon. If [number] is less than 24, it is the offset in hours e.g. "-10" = -10 hours. Otherwise it is the offset in hundred hours, e.g. "+75" = "+115" = +1¼ hours.

Jul 27 2006 -75   (2006-07-27 01:15 UTC)
Jul 27 2006 -115  (2006-07-27 01:15 UTC)
Jul 27 2006 +10   (2006-07-26 14:00 UTC)
Jul 27 2006 +2    (2006-07-26 22:00 UTC)

Standard timezones GMT, UTC, EST, EDT, CST, CDT, MST, MDT, PST and PDT are supported.

Jul 27 2006 GMT  (2006-07-27 00:00 UTC)
Jul 27 2006 UTC  (2006-07-27 00:00 UTC)
Jul 27 2006 EST  (2006-07-27 05:00 UTC)
Jul 27 2006 EDT  (2006-07-27 04:00 UTC)
Jul 27 2006 CST  (2006-07-27 06:00 UTC)
Jul 27 2006 CDT  (2006-07-27 05:00 UTC)
Jul 27 2006 MST  (2006-07-27 07:00 UTC)
Jul 27 2006 MDT  (2006-07-27 06:00 UTC)
Jul 27 2006 PST  (2006-07-27 08:00 UTC)
Jul 27 2006 PDT  (2006-07-27 07:00 UTC)

Date Format

Short dates can use either a "/" or "-" date separator, but must follow the month/day/year format.

02-03-70  (1970-02-03 UTC)
12/25/98  (1998-12-25 UTC)

Long dates of the form "July 10 2005" can be given with the year, month, and day in any order, and the year in 2-digit or 4-digit form. If you use the 2-digit form, the year must be greater than or equal to 70.

Feb-03-70         (1970-02-03 UTC)
December 25 2008  (2008-12-25 UTC)

Supported ISO 8601 Formats

YYYY-MM-DD

where YYYY is the year, MM is the month of the year, and DD is the day of the month.

2000-12-31
20001231

YYYY-DDD

where YYYY is the year, DDD is the day of the year.

1995-035  (1995-02-04 UTC)
1995035   (1995-02-04 UTC)

YYYY-WDD-D

where YYYY is the year, DD is the week of the year, D is the day of the week.

1997-W01-1  (1996-12-30 UTC)
1997W017    (1997-01-05 UTC)

DATE HH:MM:SS

Where DATE is the date format described above, HH is the hour, MM is the minute, SS is the seconds.

1995-02-04 24:00:51  (1995-02-05 00:00:51 UTC)
1976-W01-1 12:12:12  (1975-12-29 12:12:12 UTC)
1995-035 23:59:59    (1995-02-04 23:59:59 UTC)

Compact version separated by Latin capital letter T:
19950205T000051      (1995-02-05 00:00:51 UTC)
1976W011T121212      (1975-12-29 12:12:12 UTC)
1995035T235959       (1995-02-04 23:59:59 UTC)

DATE TIME +HH:MM, DATE TIME -HHMM, DATE TIME Z

Where DATE and TIME are the date and time formats described above. First character is a sign "+" (east of UTC) or "-" (west of UTC). HH and MM is hour and minute offset. The Z stands for zero offset.

1976-W01-1 12:00Z       (1975-12-29 12:00 UTC)
1976-W01-1 13:00+01:00  (1975-12-29 12:00 UTC)
1976-W01-1 0700-0500    (1975-12-29 12:00 UTC)