2009-12-14 44 views

Trả lời

77

Nếu bạn đang sử dụng Boost.Date_Time, đây là được thực hiện bằng cách sử dụng các khía cạnh IO.

Bạn cần phải bao gồm boost/date_time/posix_time/posix_time_io.hpp để có được những typedefs khía cạnh đúng (wtime_facet, time_facet, vv) cho boost::posix_time::ptime. Một khi điều này được thực hiện, mã là khá đơn giản. Bạn gọi thấm nhuần vào ostream bạn muốn xuất ra, sau đó chỉ cần đầu ra của bạn ptime:

#include <iostream> 
#include <boost/date_time/posix_time/posix_time.hpp> 
#include <boost/date_time/posix_time/posix_time_io.hpp> 

using namespace boost::posix_time; 
using namespace std; 

int main(int argc, char **argv) { 
    time_facet *facet = new time_facet("%d-%b-%Y %H:%M:%S"); 
    cout.imbue(locale(cout.getloc(), facet)); 
    cout << second_clock::local_time() << endl; 
} 

Output:

14-Dec-2009 16:13:14 

Xem thêm các list of format flags trong tài liệu tăng, trong trường hợp bạn muốn đầu ra một cái gì đó fancier.

+1

Và http://www.boost.org/doc/libs/1_35_0/doc/html/date_time/date_time_io.html#date_time.format_flags cho cờ định dạng. –

+0

Tôi đã làm việc cho tôi, cảm ơn! – Alfredo

+4

Sẽ cout mất quyền sở hữu và xóa con trỏ khía cạnh? – Arthur

Các vấn đề liên quan