#include <icy/datetime.h>This class represents an instant in local time (as opposed to UTC), expressed in years, months, days, hours, minutes, seconds and milliseconds based on the Gregorian calendar.
In addition to the date and time, the class also maintains a time zone differential, which denotes the difference in seconds from UTC to local time, i.e. UTC = local time - time zone differential.
Although LocalDateTime supports relational and arithmetic operators, all date/time comparisons and date/time arithmetics should be done in UTC, using the DateTime or Timestamp class for better performance. The relational operators normalize the dates/times involved to UTC before carrying out the comparison.
The time zone differential is based on the input date and time and current time zone. A number of constructors accept an explicit time zone differential parameter. These should not be used since daylight savings time processing is impossible since the time zone is unknown. Each of the constructors accepting a tzd parameter have been marked as deprecated and may be removed in a future revision.
| Return | Name | Description |
|---|---|---|
LocalDateTime | Creates a LocalDateTime with the current date/time for the current time zone. | |
LocalDateTime | Creates a LocalDateTime for the given Gregorian local date and time. | |
LocalDateTime | @ deprecated Creates a LocalDateTime for the given Gregorian date and time in the time zone denoted by the time zone differential in tzd. | |
LocalDateTime | Creates a LocalDateTime from the UTC time given in dateTime, using the time zone differential of the current time zone. | |
LocalDateTime | @ deprecated Creates a LocalDateTime from the UTC time given in dateTime, using the given time zone differential. Adjusts dateTime for the given time zone differential. | |
LocalDateTime | @ deprecated Creates a LocalDateTime from the UTC time given in dateTime, using the given time zone differential. If adjust is true, adjusts dateTime for the given time zone differential. | |
LocalDateTime | Creates a LocalDateTime for the given Julian day in the local time zone. | |
LocalDateTime | @ deprecated Creates a LocalDateTime for the given Julian day in the time zone denoted by the time zone differential in tzd. | |
LocalDateTime | Copy constructor. Creates the LocalDateTime from another one. | |
~LocalDateTime | Destroys the LocalDateTime. | |
LocalDateTime & | operator= | Assigns another LocalDateTime. |
LocalDateTime & | operator= | Assigns a timestamp. |
LocalDateTime & | operator= | Assigns a Julian day in the local time zone. |
LocalDateTime & | assign | Assigns a Gregorian local date and time. |
LocalDateTime & | assign | @ deprecated Assigns a Gregorian local date and time in the time zone denoted by the time zone differential in tzd. |
LocalDateTime & | assign | @ deprecated Assigns a Julian day in the time zone denoted by the time zone differential in tzd. |
void | swap | Swaps the LocalDateTime with another one. |
int | year const inline | Returns the year. |
int | month const inline | Returns the month (1 to 12). |
int | week const inline | Returns the week number within the year. FirstDayOfWeek should be either SUNDAY (0) or MONDAY (1). The returned week number will be from 0 to 53. Week number 1 is the week containing January 4. This is in accordance to ISO 8601. |
int | day const inline | Returns the day witin the month (1 to 31). |
int | dayOfWeek const inline | Returns the weekday (0 to 6, where 0 = Sunday, 1 = Monday, ..., 6 = Saturday). |
int | dayOfYear const inline | Returns the number of the day in the year. January 1 is 1, February 1 is 32, etc. |
int | hour const inline | Returns the hour (0 to 23). |
int | hourAMPM const inline | Returns the hour (0 to 12). |
bool | isAM const inline | Returns true if hour < 12;. |
bool | isPM const inline | Returns true if hour >= 12. |
int | minute const inline | Returns the minute (0 to 59). |
int | second const inline | Returns the second (0 to 59). |
int | millisecond const inline | Returns the millisecond (0 to 999) |
int | microsecond const inline | Returns the microsecond (0 to 999) |
double | julianDay const inline | Returns the julian day for the date. |
int | tzd const inline | Returns the time zone differential. |
DateTime | utc const | Returns the UTC equivalent for the local date and time. |
Timestamp | timestamp const inline | Returns the date and time expressed as a Timestamp. |
Timestamp::UtcTimeVal | utcTime const inline | Returns the UTC equivalent for the local date and time. |
bool | operator== const | |
bool | operator!= const | |
bool | operator< const | |
bool | operator<= const | |
bool | operator> const | |
bool | operator>= const | |
LocalDateTime | operator+ const | |
LocalDateTime | operator- const | |
Timespan | operator- const | |
LocalDateTime & | operator+= | |
LocalDateTime & | operator-= |
LocalDateTime()Creates a LocalDateTime with the current date/time for the current time zone.
LocalDateTime(int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond)Creates a LocalDateTime for the given Gregorian local date and time.
year is from 0 to 9999.
month is from 1 to 12.
day is from 1 to 31.
hour is from 0 to 23.
minute is from 0 to 59.
second is from 0 to 59.
millisecond is from 0 to 999.
microsecond is from 0 to 999.
LocalDateTime(int tzd, int year, int month, int day, int hour, int minute, int second, int millisecond, int microsecond)@ deprecated Creates a LocalDateTime for the given Gregorian date and time in the time zone denoted by the time zone differential in tzd.
tzd is in seconds.
year is from 0 to 9999.
month is from 1 to 12.
day is from 1 to 31.
hour is from 0 to 23.
minute is from 0 to 59.
second is from 0 to 59.
millisecond is from 0 to 999.
microsecond is from 0 to 999.
LocalDateTime(const DateTime & dateTime)Creates a LocalDateTime from the UTC time given in dateTime, using the time zone differential of the current time zone.
LocalDateTime(int tzd, const DateTime & dateTime)@ deprecated Creates a LocalDateTime from the UTC time given in dateTime, using the given time zone differential. Adjusts dateTime for the given time zone differential.
LocalDateTime(int tzd, const DateTime & dateTime, bool adjust)@ deprecated Creates a LocalDateTime from the UTC time given in dateTime, using the given time zone differential. If adjust is true, adjusts dateTime for the given time zone differential.
LocalDateTime(double julianDay)Creates a LocalDateTime for the given Julian day in the local time zone.
LocalDateTime(int tzd, double julianDay)@ deprecated Creates a LocalDateTime for the given Julian day in the time zone denoted by the time zone differential in tzd.
LocalDateTime(const LocalDateTime & dateTime)Copy constructor. Creates the LocalDateTime from another one.
~LocalDateTime()Destroys the LocalDateTime.
LocalDateTime & operator=(const LocalDateTime & dateTime)Assigns another LocalDateTime.
LocalDateTime & operator=(const Timestamp & timestamp)Assigns a timestamp.
LocalDateTime & operator=(double julianDay)Assigns a Julian day in the local time zone.
LocalDateTime & assign(int year, int month, int day, int hour, int minute, int second, int millisecond, int microseconds)Assigns a Gregorian local date and time.
year is from 0 to 9999.
month is from 1 to 12.
day is from 1 to 31.
hour is from 0 to 23.
minute is from 0 to 59.
second is from 0 to 59.
millisecond is from 0 to 999.
microsecond is from 0 to 999.
LocalDateTime & assign(int tzd, int year, int month, int day, int hour, int minute, int second, int millisecond, int microseconds)@ deprecated Assigns a Gregorian local date and time in the time zone denoted by the time zone differential in tzd.
tzd is in seconds.
year is from 0 to 9999.
month is from 1 to 12.
day is from 1 to 31.
hour is from 0 to 23.
minute is from 0 to 59.
second is from 0 to 59.
millisecond is from 0 to 999.
microsecond is from 0 to 999.
LocalDateTime & assign(int tzd, double julianDay)@ deprecated Assigns a Julian day in the time zone denoted by the time zone differential in tzd.
void swap(LocalDateTime & dateTime)Swaps the LocalDateTime with another one.
const inline
inline int year() constReturns the year.
const inline
inline int month() constReturns the month (1 to 12).
const inline
inline int week(int firstDayOfWeek) constReturns the week number within the year. FirstDayOfWeek should be either SUNDAY (0) or MONDAY (1). The returned week number will be from 0 to 53. Week number 1 is the week containing January 4. This is in accordance to ISO 8601.
The following example assumes that firstDayOfWeek is MONDAY. For 2005, which started on a Saturday, week 1 will be the week starting on Monday, January 3. January 1 and 2 will fall within week 0 (or the last week of the previous year).
For 2007, which starts on a Monday, week 1 will be the week startung on Monday, January 1. There will be no week 0 in 2007.
const inline
inline int day() constReturns the day witin the month (1 to 31).
const inline
inline int dayOfWeek() constReturns the weekday (0 to 6, where 0 = Sunday, 1 = Monday, ..., 6 = Saturday).
const inline
inline int dayOfYear() constReturns the number of the day in the year. January 1 is 1, February 1 is 32, etc.
const inline
inline int hour() constReturns the hour (0 to 23).
const inline
inline int hourAMPM() constReturns the hour (0 to 12).
const inline
inline bool isAM() constReturns true if hour < 12;.
const inline
inline bool isPM() constReturns true if hour >= 12.
const inline
inline int minute() constReturns the minute (0 to 59).
const inline
inline int second() constReturns the second (0 to 59).
const inline
inline int millisecond() constReturns the millisecond (0 to 999)
const inline
inline int microsecond() constReturns the microsecond (0 to 999)
const inline
inline double julianDay() constReturns the julian day for the date.
const inline
inline int tzd() constReturns the time zone differential.
const
DateTime utc() constReturns the UTC equivalent for the local date and time.
const inline
inline Timestamp timestamp() constReturns the date and time expressed as a Timestamp.
const inline
inline Timestamp::UtcTimeVal utcTime() constReturns the UTC equivalent for the local date and time.
const
bool operator==(const LocalDateTime & dateTime) constconst
bool operator!=(const LocalDateTime & dateTime) constconst
bool operator<(const LocalDateTime & dateTime) constconst
bool operator<=(const LocalDateTime & dateTime) constconst
bool operator>(const LocalDateTime & dateTime) constconst
bool operator>=(const LocalDateTime & dateTime) constconst
LocalDateTime operator+(const Timespan & span) constconst
LocalDateTime operator-(const Timespan & span) constconst
Timespan operator-(const LocalDateTime & dateTime) constLocalDateTime & operator+=(const Timespan & span)LocalDateTime & operator-=(const Timespan & span)| Return | Name | Description |
|---|---|---|
LocalDateTime | ||
void | determineTzd | Recalculate the tzd based on the _dateTime member based on the current timezone using the Standard C runtime functions. If adjust is true, then adjustForTzd() is called after the differential is calculated. |
void | adjustForTzd inline | Adjust the _dateTime member based on the _tzd member. |
std::time_t | dstOffset const | Determine the DST offset for the current date/time. |
LocalDateTime(Timestamp::UtcTimeVal utcTime, Timestamp::TimeDiff diff, int tzd)void determineTzd(bool adjust)Recalculate the tzd based on the _dateTime member based on the current timezone using the Standard C runtime functions. If adjust is true, then adjustForTzd() is called after the differential is calculated.
inline
inline void adjustForTzd()Adjust the _dateTime member based on the _tzd member.
const
std::time_t dstOffset(int & dstOffset) constDetermine the DST offset for the current date/time.
DateTime _dateTimeint _tzd