Holds absolute and relative date/time values in Qore with precision to the microsecond.
More...
|
DLLEXPORT | DateTime (bool r=false) |
| constructor for an empty object More...
|
|
DLLEXPORT | DateTime (int n_year, int n_month, int n_day, int n_hour=0, int n_minute=0, int n_second=0, short n_ms=0, bool n_relative=false) |
| constructor for setting all parameters More...
|
|
DLLEXPORT | DateTime (int64 seconds) |
| constructor for setting an absolute date based on the number of seconds from January 1, 1970 More...
|
|
DLLEXPORT | DateTime (int64 seconds, int ms) |
| constructor for setting an absolute date based on the number of seconds from January 1, 1970 (plus milliseconds) More...
|
|
DLLEXPORT | DateTime (const char *date) |
| constructor for setting the date from a string More...
|
|
DLLEXPORT | DateTime (const AbstractQoreZoneInfo *zone, const char *date) |
| constructor for setting the date from a string with a flexible format More...
|
|
DLLEXPORT | DateTime (const struct tm *tms) |
| constructor for setting an absolute date based on a "struct tm" More...
|
|
DLLEXPORT | DateTime (const DateTime &dt) |
| copy constructor
|
|
DLLEXPORT | ~DateTime () |
| destroys the object and frees all memory
|
|
DLLEXPORT void | format (QoreString &str, const char *fmt) const |
| formats the date/time value to a QoreString More...
|
|
DLLEXPORT int | getDay () const |
| returns the day portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
|
|
DLLEXPORT int | getDayNumber () const |
| returns the ordinal number of the day in the year for absolute dates, sometimes (mistakenly) referred to as the Julian date More...
|
|
DLLEXPORT int | getDayOfWeek () const |
| returns the day of week for the current date (0-6, Sun-Sat) More...
|
|
DLLEXPORT int64 | getEpochMicrosecondsUTC () const |
| gets the number of microseconds since January 1, 1970Z for the current date More...
|
|
DLLEXPORT int64 | getEpochMillisecondsUTC () const |
| gets the number of milliseconds since January 1, 1970Z for the current date More...
|
|
DLLEXPORT int64 | getEpochSeconds () const |
| gets the number of seconds since January 1, 1970 for the current date offset in local time More...
|
|
DLLEXPORT int64 | getEpochSecondsUTC () const |
| gets the number of seconds since January 1, 1970Z for the current date More...
|
|
DLLEXPORT int | getHour () const |
| returns the hour portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
|
|
DLLEXPORT void | getInfo (const AbstractQoreZoneInfo *n_zone, qore_tm &info) const |
| returns the broken-down time in the given time zone (n_zone = 0 means UTC)
|
|
DLLEXPORT void | getInfo (qore_tm &info) const |
| returns the broken-down time in the current time zone
|
|
DLLEXPORT void | getISOWeek (int &year, int &week, int &day) const |
| returns the ISO-8601 week information More...
|
|
DLLEXPORT int | getMicrosecond () const |
| returns the microsecond portion of the date-time value More...
|
|
DLLEXPORT int | getMillisecond () const |
| returns the microsecond portion of the date-time value divided by 1000 More...
|
|
DLLEXPORT int | getMinute () const |
| returns the minute portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
|
|
DLLEXPORT int | getMonth () const |
| returns the month portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
|
|
DLLEXPORT int64 | getRelativeMicroseconds () const |
| returns the difference as the number of microseconds between the date/time value and the local time at the moment of the call, for absolute date/time values; for relative date/time values, the duration is converted to microseconds and returned as an integer More...
|
|
DLLEXPORT int64 | getRelativeMilliseconds () const |
| returns the difference as the number of milliseconds between the date/time value and the local time at the moment of the call, for absolute date/time values; for relative date/time values, the duration is converted to milliseconds and returned as an integer More...
|
|
DLLEXPORT int64 | getRelativeSeconds () const |
| returns the difference as the number of seconds between the date/time value and the local time at the moment of the call for absolute date/time values; for relative date/time values, the duration is converted to seconds and returned as an integer More...
|
|
DLLEXPORT int | getSecond () const |
| returns the second portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
|
|
DLLEXPORT void | getTM (struct tm *tms) const |
| sets a "struct tm" from the current date/time value for the time zone for the object; use DateTime::getInfo() instead
|
|
DLLEXPORT short | getYear () const |
| returns the year portion of the date-time value (in local time according to the time zone for absolute date/time values) More...
|
|
DLLEXPORT const AbstractQoreZoneInfo * | getZone () const |
| gets the time zone for the object; returns 0 for relative date/time values
|
|
DLLEXPORT bool | hasValue () const |
| returns true if the object has a value, false if not (zero value = 1970-01-01Z for absolute times, or all relative components = 0)
|
|
DLLEXPORT bool | isAbsolute () const |
| returns true if the value is an absolute date-time value More...
|
|
DLLEXPORT bool | isRelative () const |
| returns true if the value is a relative date-time value More...
|
|
DLLEXPORT void | setDate (int64 seconds) |
| sets the absolute date value based on the number of seconds from January 1, 1970 More...
|
|
DLLEXPORT void | setDate (int64 seconds, int ms) |
| sets the absolute date value based on the number of seconds from January 1, 1970 UTC (plus milliseconds) More...
|
|
DLLEXPORT void | setDate (const AbstractQoreZoneInfo *zone, int64 seconds, int us) |
| sets the absolute date value based on the number of seconds from January 1, 1970 UTC (plus microseconds) More...
|
|
DLLEXPORT void | setDate (const AbstractQoreZoneInfo *n_zone, int n_year, int n_month, int n_day, int n_hour=0, int n_minute=0, int n_second=0, int n_us=0) |
| sets the date to an absolute date/time as given
|
|
DLLEXPORT void | setDate (const char *str) |
| sets an absolute date value from a string with a flexible format More...
|
|
DLLEXPORT void | setDate (const AbstractQoreZoneInfo *zone, const char *str) |
| sets an absolute date value from a time zone pointer and a string with a flexible format More...
|
|
DLLEXPORT void | setDate (const struct tm *tms, short ms=0) |
| sets the absolute date from a "struct tm" pointer and millisecond value
|
|
DLLEXPORT void | setDate (const DateTime &date) |
| sets the date from a DateTime reference
|
|
DLLEXPORT void | setLocalDate (const AbstractQoreZoneInfo *zone, int64 seconds, int us) |
| sets the absolute date value based on the number of seconds from January 1, 1970 in the given time zone (plus microseconds) More...
|
|
DLLEXPORT void | setNow () |
| sets the current date and time in the current time zone; current contents are overwritten More...
|
|
DLLEXPORT void | setNow (const AbstractQoreZoneInfo *zone) |
| sets the current date and time in the given time zone; current contents are overwritten More...
|
|
DLLEXPORT void | setRelativeDate (const char *str) |
| sets a relative date from a string in the format YYYYMMDDHHmmSS
|
|
DLLEXPORT void | setTime (int h, int m, int s, short ms=0) |
| sets the time from hours, minutes, seconds, and milliseconds More...
|
|
DLLEXPORT void | setZone (const AbstractQoreZoneInfo *n_zone) |
| changes the time zone for the time without updating the epoch offset
|
|
DLLEXPORT DateTime * | unaryMinus () const |
| returns the negative time from the current time
|
|
DLLEXPORT void | unaryMinusInPlace () |
| converts the current value to the negative of itself
|
|
|
static DLLEXPORT int | compareDates (const DateTime *left, const DateTime *right) |
| returns -1, 0, or 1 if the left date is less than, equal, or greater than the right date
|
|
static DLLEXPORT DateTime * | getDateFromISOWeek (int year, int week, int day, ExceptionSink *xsink) |
| returns a DateTime value from ISO-8601 week and day offsets More...
|
|
static DLLEXPORT int | getLastDayOfMonth (int month, int year) |
| returns the number of days in the month given according to a proleptic gregorian calendar
|
|
static DLLEXPORT bool | isLeapYear (int year) |
| returns true if the year passed is a leap year according to a proleptic gregorian calendar
|
|
static DLLEXPORT DateTime * | makeAbsolute (const AbstractQoreZoneInfo *n_zone, int n_year, int n_month, int n_day, int n_hour=0, int n_minute=0, int n_second=0, int n_us=0) |
| static "constructor" to create an absolute time, including microseconds
|
|
static DLLEXPORT DateTime * | makeAbsolute (const AbstractQoreZoneInfo *zone, int64 seconds, int us=0) |
| static "constructor" to create an absolute time as an offset from the epoch, including microseconds More...
|
|
static DLLEXPORT DateTime * | makeAbsoluteLocal (const AbstractQoreZoneInfo *zone, int64 seconds, int us=0) |
| static "constructor" to create an absolute time as an offset from the given time zone's epoch, including microseconds More...
|
|
static DLLEXPORT DateTime * | makeRelative (int n_year, int n_month, int n_day, int n_hour=0, int n_minute=0, int n_second=0, int n_us=0) |
| static "constructor" to create a relative time, including microseconds
|
|
Holds absolute and relative date/time values in Qore with precision to the microsecond.
Date arithmetic and date formatting is supported by this class. As of qore 0.8.0, the internal representation for absolute date/time values has changed. Now, absolute date/time values are stored internally as a 64-bit offset in seconds since the UNIX epoch (January 1, 1970 UTC), plus a 4-byte integer microseconds offset, plus a pointer to an AbstractQoreZoneInfo object, which gives the time zone information (UTC offset, daylights savings time transitions, if any, etc).
Therefore, for absolute date/time values, it is expensive to call functions that get discrete values for the date (DateTime::getYear(), DateTime::getMonth(), and DateTime::getDay()), because for each call, all broken-down components are calculated for each call. In the case that more than one component of an absolute date/time value is required, it's recommended to call DateTime::getInfo() instead.
Relative date/time values are stored with discrete values for years, months, days, hours, minutes, seconds, and microseconds.
This is a "normal" (i.e. not reference counted) class, for the equivalent Qore value type, see DateTimeNode
- See also
- DateTimeNode