2013-10-06 21 views
0

我已經發現了堆棧溢出的幾個問題,使用各種stringstreams和一些奇怪的方法,沒有真正記錄正確。 (顯然似乎沒有這樣做的標準方式嗎?)如何使用Boost格式化日期時間?

真的沒有簡單(5行或更少)的方式來格式boost::chrono::system_time::now()到自定義日期/時間std ::字符串?

+0

你試過C++ 11 ['標準:: chrono'(http://en.cppreference.com/w/cpp /計時)?另一方面,它沒有格式化日期時間的標準函數(我指的是C++風格,你必須使用C的posix函數)。我正在等待['std :: chrono_io'](http://home.roadrunner.com/~hinnant/bloomington/chrono_io.html)。 – Manu343726

+1

Boost還提供了boost :: chrono_io和boost :: chrono庫(http://www.boost.org/doc/libs/1_54_0/doc/html/chrono.html)庫 – Manu343726

+0

@ Manu343726似乎沒有任何文檔或實際代碼使用這個存在。 (甚至找不到在boost頭文件中嵌入適當的文檔) –

回答

0

是的,您可以使用ctime將時間點轉換爲日曆表示法。

std::time_t t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); 
std::string ts = std::ctime(&t); 

將返回太陽10月6 13點55分05秒2013

+0

但是,如何自定義格式的時間?就像我想讓它變成「YYYY-MM-DD HH-MM-SS」一樣? –

+0

在boost datetime格式庫中使用它,請參閱此處:http://stackoverflow.com/questions/5018188/how-to-format-a-datetime-to-string-using-boost –