यदि मैं कमांडलाइन (डेबियन/लेनी) पर date +%H-%M-%S
करता हूं, तो मुझे उपयोगकर्ता के अनुकूल (यूटीसी नहीं, डीएसटी-कम नहीं, एक सामान्य व्यक्ति को उनके कलाई घड़ी पर समय मिलता है) समय मुद्रित होता है।बूस्ट :: date_time का उपयोग कर वर्तमान समय क्षेत्र में वर्तमान समय प्राप्त करने का सबसे आसान तरीका?
boost::date_time
के साथ एक ही चीज़ प्राप्त करने का सबसे आसान तरीका क्या है?
अगर मैं ऐसा करते हैं:
std::ostringstream msg;
boost::local_time::local_date_time t =
boost::local_time::local_sec_clock::local_time(
boost::local_time::time_zone_ptr()
);
boost::local_time::local_time_facet* lf(
new boost::local_time::local_time_facet("%H-%M-%S")
);
msg.imbue(std::locale(msg.getloc(),lf));
msg << t;
फिर msg.str()
एक घंटे समय मैं देखना चाहता हूँ से पहले है। मुझे यकीन नहीं है कि ऐसा इसलिए है क्योंकि यह डीटीएस सुधार के बिना यूटीसी या स्थानीय टाइमज़ोन समय दिखा रहा है (मैं यूके में हूं)।
डीएसटी सही स्थानीय टाइमज़ोन समय को उपज करने के लिए ऊपर संशोधित करने का सबसे आसान तरीका क्या है? मुझे एक विचार है कि इसमें boost::date_time:: c_local_adjustor
शामिल है लेकिन उदाहरणों से इसे समझ नहीं सकता है।
मेरा मानना है कि यह http://stackoverflow.com/questions/2492775/get-local-time-with-boost/2493977 का डुप्लिकेट है। लघु संस्करण: सिस्टम घड़ी से समय ऑब्जेक्ट बनाने के लिए 'boost :: posix_time' का उपयोग करें। यह स्थानीय समय ('सी 'लोकेल) के लिए बहुत अच्छा काम करता है। चाहे आप अन्य समय क्षेत्रों के लिए समय बना सकते हैं, आपके द्वारा उपलब्ध स्थानीय स्थानों पर निर्भर करता है। – Nate
सूचक के लिए धन्यवाद; मौलिक समस्या यह है कि मैंने वास्तव में local_time/posix_time के बीच अंतर की सराहना नहीं की थी। – timday