1 類型別名
三個時間戳相關的類型別名,TimeDiff表示兩個時間戳的 差,第二個是以微秒為單位的時間戳,第三個是以 100 納秒(0.1 微妙)為單 位的時間戳:
typedef Int64 TimeDiff; /// difference between two timestamps in microseconds
typedef Int64 TimeVal; /// monotonic UTC time value in microsecond resolution
typedef Int64 UtcTimeVal; /// monotonic UTC time value in 100 nanosecond resolution
2 構造函數
當前時間的時間戳:
Timestamp ();
指定時間的時間戳:
Timestamp(TimeVal tv);
拷貝構 造函數:
Timestamp(const Timestamp& other);
3 重載運算 符
賦值運算符:
Timestamp& operator = (const Timestamp& other);
Timestamp& operator = (TimeVal tv);
比較運算符:
bool operator == (const Timestamp& ts) const;
bool operator != (const Timestamp& ts) const;
bool operator > (const Timestamp& ts) const;
bool operator >= (const Timestamp& ts) const;
bool operator < (const Timestamp& ts) const;
bool operator <= (const Timestamp& ts) const;
算術運算符與算術賦值運算符
Timestamp operator + (TimeDiff d) const;
Timestamp operator - (TimeDiff d) const;
TimeDiff operator - (const Timestamp& ts) const;
Timestamp& operator += (TimeDiff d);
Timestamp& operator -= (TimeDiff d);
4 獲取不同格式表示的時間戳
獲取 std::time_t 格式的時間戳:
std::time_t epochTime() const;
獲取 UTC-based time 格式的時間戳:
UtcTimeVal utcTime() const;
獲取 TimeVal 格式(微秒)的時間戳:
TimeVal epochMicroseconds() const;
5 其他成員函數
交換時間戳:
void swap(Timestamp& timestamp);
更新時間戳為當前時間 :
void update();
此時時間戳與這個時間戳的差(TimeStamp() - *this):
TimeDiff elapsed() const;
判斷一段時間是否已經 過去:
bool isElapsed(TimeDiff interval) const;
6 靜態成 員函數
用std::time_t對象創建一個Timestamp:
static Timestamp fromEpochTime(std::time_t t);
用UtcTimeVal對象創建一個 Timestamp:
static Timestamp fromUtcTime(UtcTimeVal val);
返回時間解析度,即 Units per second。因為 Poco::TimeStamp 的最小解析度 為微妙,所以該函數都返回 1000000:
static TimeVal resolution ();
轉載請著名來自柳大的CSDN博客: Blog.CSDN.net/Poechant