PTLib
Version 2.14.3
|
This class defines an absolute time and date. More...
#include <ptime.h>
Public Member Functions | |
Overrides from class PObject | |
PObject * | Clone () const |
Create a copy of the time on the heap. More... | |
virtual Comparison | Compare (const PObject &obj) const |
Determine the relative rank of the specified times. More... | |
virtual void | PrintOn (ostream &strm) const |
Output the time to the stream. More... | |
virtual void | ReadFrom (istream &strm) |
Input the time from the specified stream. More... | |
Operations | |
PTime | operator+ (const PTimeInterval &time) const |
Add the interval to the time to yield a new time. More... | |
PTime & | operator+= (const PTimeInterval &time) |
Add the interval to the time changing the instance. More... | |
PTimeInterval | operator- (const PTime &time) const |
Calculate the difference between two times to get a time interval. More... | |
PTime | operator- (const PTimeInterval &time) const |
Subtract the interval from the time to yield a new time. More... | |
PTime & | operator-= (const PTimeInterval &time) |
Subtract the interval from the time changing the instance. More... | |
![]() | |
unsigned | GetTraceContextIdentifier () const |
Get PTRACE context identifier. More... | |
void | SetTraceContextIdentifier (unsigned id) |
void | GetTraceContextIdentifier (PObject &obj) |
void | GetTraceContextIdentifier (PObject *obj) |
void | SetTraceContextIdentifier (const PObject &obj) |
void | SetTraceContextIdentifier (const PObject *obj) |
virtual | ~PObject () |
template<class CLS > | |
CLS * | CloneAs () const |
As for Clone() but converts to specified type. More... | |
virtual PINDEX | HashFunction () const |
This function yields a hash value required by the PDictionary class. More... | |
virtual const char * | GetClass (unsigned ancestor=0) const |
Get the current dynamic type of the object instance. More... | |
PBoolean | IsClass (const char *cls) const |
virtual PBoolean | InternalIsDescendant (const char *clsName) const |
Determine if the dynamic type of the current instance is a descendent of the specified class. More... | |
__inline const PObject * | PTraceObjectInstance () const |
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const |
Determine the byte wise comparison of two objects. More... | |
bool | operator== (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator!= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator< (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator> (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator<= (const PObject &obj) const |
Compare the two objects. More... | |
bool | operator>= (const PObject &obj) const |
Compare the two objects. More... | |
virtual void | PrintOn (ostream &strm) const |
Output the contents of the object to the stream. More... | |
virtual void | ReadFrom (istream &strm) |
Input the contents of the object from the stream. More... | |
Static Public Member Functions | |
static struct tm * | os_localtime (const time_t *clock, struct tm *t) |
static struct tm * | os_gmtime (const time_t *clock, struct tm *t) |
![]() | |
static const char * | Class () |
Get the name of the class as a C string. More... | |
static __inline const PObject * | PTraceObjectInstance (const char *) |
static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
Internal function caled from CompareObjectMemoryDirect() More... | |
Protected Attributes | |
time_t | theTime |
Number of seconds since 1 January 1970. More... | |
long | microseconds |
![]() | |
unsigned | m_traceContextIdentifier |
Construction | |
enum | { UTC = 0, GMT = UTC, Local = 9999 } |
Time Zone special codes. More... | |
PTime () | |
Create a time object instance. More... | |
PTime (time_t tsecs, long usecs=0) | |
Create a time object instance. More... | |
PTime (const PString &str) | |
Create a time object instance. More... | |
PTime (int second, int minute, int hour, int day, int month, int year, int tz=Local) | |
Create a time object instance. More... | |
Access functions | |
enum | Months { January = 1, February, March, April, May, June, July, August, September, October, November, December } |
Month codes. More... | |
enum | Weekdays { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday } |
Days of the week. More... | |
PBoolean | IsValid () const |
Determine if the timestamp is valid. More... | |
PInt64 | GetTimestamp () const |
Get the total microseconds since the epoch. More... | |
void | SetCurrentTime () |
Set the the objects time with the current time in the current time zone. More... | |
void | SetTimestamp (time_t seconds, long usecs=0) |
Set the time in seconds and microseconds. More... | |
time_t | GetTimeInSeconds () const |
Get the total seconds since the epoch. More... | |
long | GetMicrosecond () const |
Get the microsecond part of the time. More... | |
int | GetSecond () const |
Get the second of the time. More... | |
int | GetMinute () const |
Get the minute of the time. More... | |
int | GetHour () const |
Get the hour of the time. More... | |
int | GetDay () const |
Get the day of the month of the date. More... | |
Months | GetMonth () const |
Get the month of the date. More... | |
int | GetYear () const |
Get the year of the date. More... | |
Weekdays | GetDayOfWeek () const |
Get the day of the week of the date. More... | |
int | GetDayOfYear () const |
Get the day in the year of the date. More... | |
PTimeInterval | GetElapsed () const |
Retrun time elapsed from "now". More... | |
PBoolean | IsPast () const |
Determine if the time is in the past or in the future. More... | |
PBoolean | IsFuture () const |
Determine if the time is in the past or in the future. More... | |
Time Zone configuration functions | |
enum | TimeZoneType { StandardTime, DaylightSavings } |
Flag for time zone adjustment on daylight savings. More... | |
static PBoolean | IsDaylightSavings () |
Get flag indicating daylight savings is current. More... | |
static int | GetTimeZone () |
Get the time zone offset in minutes. More... | |
static int | GetTimeZone (TimeZoneType type) |
Get the time zone offset in minutes. More... | |
static PString | GetTimeZoneString (TimeZoneType type=StandardTime) |
Get the text identifier for the local time zone . More... | |
String conversion functions | |
enum | TimeFormat { RFC1123, RFC3339, ShortISO8601, LongISO8601, LongDateTime, LongDate, LongTime, MediumDateTime, MediumDate, ShortDateTime, ShortDate, ShortTime, EpochTime, LoggingFormat, NumTimeStrings } |
Standard time formats for string representations of a time and date. More... | |
PString | AsString (TimeFormat formatCode=RFC1123, int zone=Local) const |
Convert the time to a string representation. More... | |
PString | AsString (const PString &formatStr, int zone=Local) const |
Convert the time to a string representation. More... | |
PString | AsString (const char *formatPtr, int zone=Local) const |
bool | Parse (const PString &str) |
Parse a string representation of time. More... | |
Internationalisation functions | |
enum | NameType { FullName, Abbreviated } |
Flag for returning language dependent string names. More... | |
enum | DateOrder { MonthDayYear, DayMonthYear, YearMonthDay } |
Possible orders for date components. More... | |
static PString | GetTimeSeparator () |
Get the internationalised time separator. More... | |
static PBoolean | GetTimeAMPM () |
Get the internationalised time format: AM/PM or 24 hour. More... | |
static PString | GetTimeAM () |
Get the internationalised time AM string. More... | |
static PString | GetTimePM () |
Get the internationalised time PM string. More... | |
static PString | GetDayName (Weekdays dayOfWeek, NameType type=FullName) |
Get the internationalised day of week day name (0=Sun etc). More... | |
static PString | GetDateSeparator () |
Get the internationalised date separator. More... | |
static PString | GetMonthName (Months month, NameType type=FullName) |
Get the internationalised month name string (1=Jan etc). More... | |
static DateOrder | GetDateOrder () |
Return the internationalised date order. More... | |
Additional Inherited Members | |
![]() | |
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } |
Result of the comparison operation performed by the Compare() function. More... | |
![]() | |
PObject () | |
Constructor for PObject, made protected so cannot ever create one on its own. More... | |
![]() |
This class defines an absolute time and date.
It has a number of time and date rendering and manipulation functions. It is based on the standard C library functions for time. Thus it is based on a number of seconds since 1 January 1970.
anonymous enum |
enum PTime::DateOrder |
enum PTime::Months |
enum PTime::NameType |
enum PTime::TimeFormat |
Standard time formats for string representations of a time and date.
enum PTime::TimeZoneType |
enum PTime::Weekdays |
|
inline |
Create a time object instance.
This initialises the time with the current time in the current time zone.
References SetCurrentTime().
|
inline |
Create a time object instance.
This initialises the time to the specified time.
tsecs | Time in seconds since 00:00:00 1/1/70 UTC |
usecs | microseconds part of time. |
References microseconds, and theTime.
PTime::PTime | ( | const PString & | str | ) |
Create a time object instance.
This initialises the time to the specified time, parsed from the string. The string may be in many different formats, for example: "5/03/1999 12:34:56" "15/06/1999 12:34:56" "15/06/01 12:34:56 PST" "5/06/02 12:34:56" "5/23/1999 12:34am" "5/23/00 12:34am" "1999/23/04 12:34:56" "Mar 3, 1999 12:34pm" "3 Jul 2004 12:34pm" "12:34:56 5 December 1999" "10 minutes ago" "2 weeks"
str | Time and data as a string |
PTime::PTime | ( | int | second, |
int | minute, | ||
int | hour, | ||
int | day, | ||
int | month, | ||
int | year, | ||
int | tz = Local |
||
) |
Create a time object instance.
This initialises the time to the specified time.
second | Second from 0 to 59. |
minute | Minute from 0 to 59. |
hour | Hour from 0 to 23. |
day | Day of month from 1 to 31. |
month | Month from 1 to 12. |
year | Year from 1970 to 2038 |
tz | local time or UTC |
PString PTime::AsString | ( | TimeFormat | formatCode = RFC1123 , |
int | zone = Local |
||
) | const |
Convert the time to a string representation.
formatCode | Standard format for time. |
zone | Time zone for the time. |
Convert the time to a string representation.
formatStr | Arbitrary format string for time. |
zone | Time zone for the time. |
formatPtr | Arbitrary format C string pointer for time. |
zone | Time zone for the time. |
|
virtual |
Create a copy of the time on the heap.
It is the responsibility of the caller to delete the created object.
Reimplemented from PObject.
|
virtual |
Determine the relative rank of the specified times.
This ranks the times as you would expect.
obj | Other time to compare against. |
Reimplemented from PObject.
|
static |
Return the internationalised date order.
|
static |
Get the internationalised date separator.
int PTime::GetDay | ( | ) | const |
Get the day of the month of the date.
Get the internationalised day of week day name (0=Sun etc).
dayOfWeek | Code for day of week. |
type | Flag for abbreviated or full name. |
Weekdays PTime::GetDayOfWeek | ( | ) | const |
Get the day of the week of the date.
int PTime::GetDayOfYear | ( | ) | const |
Get the day in the year of the date.
PTimeInterval PTime::GetElapsed | ( | ) | const |
Retrun time elapsed from "now".
int PTime::GetHour | ( | ) | const |
Get the hour of the time.
long PTime::GetMicrosecond | ( | ) | const |
Get the microsecond part of the time.
int PTime::GetMinute | ( | ) | const |
Get the minute of the time.
Months PTime::GetMonth | ( | ) | const |
Get the month of the date.
Get the internationalised month name string (1=Jan etc).
month | Code for month in year. |
type | Flag for abbreviated or full name. |
int PTime::GetSecond | ( | ) | const |
Get the second of the time.
|
static |
Get the internationalised time AM string.
|
static |
Get the internationalised time format: AM/PM or 24 hour.
time_t PTime::GetTimeInSeconds | ( | ) | const |
Get the total seconds since the epoch.
The epoch is the 1st January 1970.
Referenced by PVarType::PVarType().
|
static |
Get the internationalised time PM string.
|
static |
Get the internationalised time separator.
PInt64 PTime::GetTimestamp | ( | ) | const |
Get the total microseconds since the epoch.
The epoch is the 1st January 1970.
|
static |
Get the time zone offset in minutes.
|
static |
Get the time zone offset in minutes.
This is the number of minutes to add to UTC (previously known as GMT) to get the local time. The first form automatically adjusts for daylight savings time, whilst the second form returns the specified time.
type | Daylight saving or standard time. |
|
static |
Get the text identifier for the local time zone .
type | Daylight saving or standard time. |
int PTime::GetYear | ( | ) | const |
Get the year of the date.
|
static |
Get flag indicating daylight savings is current.
PBoolean PTime::IsFuture | ( | ) | const |
Determine if the time is in the past or in the future.
PBoolean PTime::IsPast | ( | ) | const |
Determine if the time is in the past or in the future.
PBoolean PTime::IsValid | ( | ) | const |
Determine if the timestamp is valid.
This will return true if the timestamp can be represented as a time in the epoch. The epoch is the 1st January 1970.
In practice this means the time is > 13 hours to allow for time zones.
PTime PTime::operator+ | ( | const PTimeInterval & | time | ) | const |
Add the interval to the time to yield a new time.
time | Time interval to add to the time. |
PTime& PTime::operator+= | ( | const PTimeInterval & | time | ) |
Add the interval to the time changing the instance.
time | Time interval to add to the time. |
PTimeInterval PTime::operator- | ( | const PTime & | time | ) | const |
Calculate the difference between two times to get a time interval.
time | Time to subtract from the time. |
PTime PTime::operator- | ( | const PTimeInterval & | time | ) | const |
Subtract the interval from the time to yield a new time.
time | Time interval to subtract from the time. |
PTime& PTime::operator-= | ( | const PTimeInterval & | time | ) |
Subtract the interval from the time changing the instance.
time | Time interval to subtract from the time. |
|
staticread |
|
staticread |
bool PTime::Parse | ( | const PString & | str | ) |
Parse a string representation of time.
This initialises the time to the specified time, parsed from the string. The string may be in many different formats, for example: "5/03/1999 12:34:56" "15/06/1999 12:34:56" "15/06/01 12:34:56 PST" "5/06/02 12:34:56" "5/23/1999 12:34am" "5/23/00 12:34am" "1999/23/04 12:34:56" "Mar 3, 1999 12:34pm" "3 Jul 2004 12:34pm" "12:34:56 5 December 1999" "10 minutes ago" "2 weeks"
|
virtual |
Output the time to the stream.
This uses the AsString()
function with the ShortDateTime
parameter.
strm | Stream to output the time to. |
|
virtual |
Input the time from the specified stream.
If a parse error occurs the time is set to the current time. The string may be in many different formats, for example: "5/03/1999 12:34:56" "15/06/1999 12:34:56" "15/06/01 12:34:56 PST" "5/06/02 12:34:56" "5/23/1999 12:34am" "5/23/00 12:34am" "1999/23/04 12:34:56" "Mar 3, 1999 12:34pm" "3 Jul 2004 12:34pm" "12:34:56 5 December 1999" "10 minutes ago" "2 weeks"
strm | Stream to input the time from. |
void PTime::SetCurrentTime | ( | ) |
Set the the objects time with the current time in the current time zone.
Referenced by PTime().
void PTime::SetTimestamp | ( | time_t | seconds, |
long | usecs = 0 |
||
) |
Set the time in seconds and microseconds.
|
protected |
Referenced by PTime().
|
protected |
Number of seconds since 1 January 1970.
Referenced by PTime().