POCO庫中文程式設計參考指南(6)Poco::Timestamp

鍾超發表於2012-04-15

POCO庫中文程式設計參考指南(6)Poco::Timestamp

  • 作者:柳大·Poechant
  • 部落格:Blog.CSDN.net/Poechant
  • 郵箱:zhongchao.ustc#gmail.com (# -> @)
  • 日期:April 15th, 2012

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

-

相關文章