2011-04-09 159 views
2

我無法將posix_time :: ptime轉換爲由time_t或posix_time :: milliseconds表示的時間戳,或者可以輕鬆打印的任何其他適當類型(來自Epoch)。Boost:如何在Epoch中以毫秒爲單位打印/轉換posix_time :: ptime?

我實際上只需要以毫秒爲單位打印由posix_time :: ptime表示的時間戳,所以如果有一種簡單的方法以該格式打印,我實際上不需要轉換。

回答

1

該代碼將打印自1941-12-07T00:00:00以來的毫秒數。顯然,你可以選擇任何適合你需要的時代。

void print_ptime_in_ms_from_epoch(const boost::posix_time::ptime& pt) 
    { 
    using boost::posix_time::ptime; 
    using namespace boost::gregorian; 
    std::cout << (pt-ptime(date(1941, Dec, 7))).total_milliseconds() << "\n"; 
    } 
+1

值得注意的是,在pt中找到的時區偏移信息會影響結果。例如,如果pt與microsec_clock :: universal_time()一起被抓取,您將得到與如果您使用microsec_clock :: local_time()不同的答案。 – Ben 2012-01-30 17:04:56

相關問題