1. 程式人生 > >POCO庫中文編程參考指南(6)Poco::Timestamp

POCO庫中文編程參考指南(6)Poco::Timestamp

更新時間 chan 表示 ase 拷貝構造函數 date other 靜態成員函數 get

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();

-

from:Blog.CSDN.net/Poechant

POCO庫中文編程參考指南(6)Poco::Timestamp