2009-12-14 17 views
45

प्रारूप डीडी/मिमी/yyyy एच प्रारूप में Boost पुस्तकालयों का उपयोग करके, वर्तमान दिनांक को कैसे प्रिंट कर सकता हूं?प्रारूप समय डीडी/मिमी/yyyy के साथ दिनांक समय वस्तु को प्रारूपित करने के लिए कैसे?

मैं क्या है:

boost::posix_time::ptime now = boost::posix_time::second_clock::local_time(); 
cout << boost::posix_time::to_simple_string(now).c_str(); 

2009-Dec-14 23:31:40 

लेकिन मैं चाहता हूँ:

14-दिसम्बर-2009 23:31:40

उत्तर

77

आप Boost.Date_Time का उपयोग कर रहे हैं, यह है आईओ पहलुओं का उपयोग करके किया।

आप boost::posix_time::ptime के लिए सही पहलू typedefs (wtime_facet, time_facet, आदि) प्राप्त करने के लिए boost/date_time/posix_time/posix_time_io.hpp शामिल करने के लिए की जरूरत है। एक बार यह हो जाने के बाद, कोड बहुत आसान है।

#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; 
} 

आउटपुट::

14-Dec-2009 16:13:14 

भी देखें बढ़ावा डॉक्स में list of format flags, मामले में आप उत्पादन कुछ करना चाहते हैं आप ostream आप, तो बस उत्पादन के लिए उत्पादन करना चाहते हैं अपने ptime पर रंगना फोन अधिक सजावटी।

+1

और स्वरूप झंडे के लिए http://www.boost.org/doc/libs/1_35_0/doc/html/date_time/date_time_io.html#date_time.format_flags। –

+0

मैंने मेरे लिए काम किया, धन्यवाद! – Alfredo

+4

क्या कॉउट स्वामित्व लेगा और पहलू सूचक हटा देगा? – Arthur

संबंधित मुद्दे