दिलचस्प पोस्ट
विंडोज़ के तहत PHP पहुंच नेटवर्क पथ कैसे जांचें कि कोई शब्द पायथन के साथ एक अंग्रेजी शब्द है? क्या पृष्ठ को ताज़ा करने के बिना ब्राउज़र का एड्रेस बार बदलने का एक तरीका है? पायथन में, आप ऑर्डर किए गए आदेश के रूप में YAML मैपिंग कैसे लोड कर सकते हैं? संदर्भ आंतरिक कैसे कार्यान्वित किया जाता है? जावा स्ट्रिंग को डेट ऑब्जेक्ट में कैसे परिवर्तित करें Angularjs ver 1.3.0 में एनजी-नियंत्रक का उपयोग करते समय एक त्रुटि हो रही है सी या सी ++ में, क्या मुझे नाउल / नलप्टर के लिए पॉइंटर पैरामीटर की जांच करनी चाहिए? SQLParameter एसक्यूएल इंजेक्शन कैसे रोकता है? जावा – मैं एक फ़ाइल में मेरा ArrayList कैसे लिख सकता हूँ, और पढ़ें (लोड) जो मूल ArrayList पर फ़ाइल है? मैं भौतिक पिक्सल में एक WPF आकार कैसे परिवर्तित करूं? सभी कैप (अंडरस्कोर द्वारा अलग किए गए शब्द) से कैमेरा को सीज़ेल (कोई शब्द विभाजक) में परिवर्तित करने का सबसे आसान तरीका क्या है? पीओआई का उपयोग करते हुए एक एक्सेल फाइल के लिए एक बड़ा resultset लिखना लॉक / अनलॉक स्क्रीन प्रोग्राम कैसे करें? Exec को आउटपुट से ग्राबिंग करना

सी ++ में वर्तमान समय और तारीख कैसे प्राप्त करें?

सी ++ में वर्तमान दिनांक और समय प्राप्त करने के लिए कोई क्रॉस-प्लेटफ़ॉर्म तरीका है?

वेब के समाधान से एकत्रित समाधान "सी ++ में वर्तमान समय और तारीख कैसे प्राप्त करें?"

मानक सी पुस्तकालय time() प्रदान करते हैं time() यह युग से कुछ सेकंड है और इसे तदनुसार परिवर्तित किया जा सकता है और H:M:S मानक सी फ़ंक्शन का उपयोग कर H:M:Sबूस्ट में एक समय / तिथि पुस्तकालय है जिसे आप देख सकते हैं।

 time_t timev; time(&timev); 

C ++ सी के साथ अपनी तारीख / समय फ़ंक्शन साझा करता है। टीएम संरचना संभवतः एक सी ++ प्रोग्रामर के साथ काम करने के लिए सबसे आसान है – आज की तारीख में निम्न प्रिंट:

 #include <ctime> #include <iostream> using namespace std; int main() { time_t t = time(0); // get time now struct tm * now = localtime( & t ); cout << (now->tm_year + 1900) << '-' << (now->tm_mon + 1) << '-' << now->tm_mday << endl; } 

सी ++ 11 में आप std :: chrono :: system_clock :: अब () का उपयोग कर सकते हैं

(उदाहरण / उपयोग देखने के लिए लिंक पर क्लिक करें।)

आप वर्तमान तिथि / समय प्राप्त करने के लिए निम्नलिखित क्रॉस-प्लेटफ़ॉर्म कोड का प्रयास कर सकते हैं:

 #include <iostream> #include <string> #include <stdio.h> #include <time.h> // Get current date/time, format is YYYY-MM-DD.HH:mm:ss const std::string currentDateTime() { time_t now = time(0); struct tm tstruct; char buf[80]; tstruct = *localtime(&now); // Visit http://en.cppreference.com/w/cpp/chrono/c/strftime // for more information about date/time format strftime(buf, sizeof(buf), "%Y-%m-%d.%X", &tstruct); return buf; } int main() { std::cout << "currentDateTime()=" << currentDateTime() << std::endl; getchar(); // wait for keyboard input } 

आउटपुट:

 currentDateTime()=2012-05-06.21:47:59 

कृपया दिनांक / समय प्रारूप के बारे में अधिक जानकारी के लिए यहां जाएं

सी ++ मानक लाइब्रेरी एक उचित तिथि प्रकार प्रदान नहीं करती है। सी ++ से डेटा और समय में हेरफेर के लिए स्ट्रैक्ट्स और फ़ंक्शन को संभालता है, साथ ही कुछ तारीख / समय इनपुट और आउटपुट फ़ंक्शन के साथ जो खाते के स्थानीयकरण को लेते हैं।

 // Current date/time based on current system time_t now = time(0); // Convert now to tm struct for local timezone tm* localtm = localtime(&now); cout << "The local date and time is: " << asctime(localtm) << endl; // Convert now to tm struct for UTC tm* gmtm = gmtime(&now); if (gmtm != NULL) { cout << "The UTC date and time is: " << asctime(gmtm) << endl; } else { cerr << "Failed to get the UTC date and time" << endl; return EXIT_FAILURE; } 

(साथी गोगलर्स के लिए)

वहाँ भी बढ़ा है :: date_time :

 #include <boost/date_time/posix_time/posix_time.hpp> boost::posix_time::ptime date_time = boost::posix_time::microsec_clock::universal_time(); 

एक पुराने प्रश्न का नया जवाब:

सवाल किस समय क्षेत्र में निर्दिष्ट नहीं है दो उचित संभावनाएं हैं:

  1. यूटीसी में
  2. कंप्यूटर के स्थानीय समयक्षेत्र में

1 के लिए, आप इस तिथि पुस्तकालय और निम्न प्रोग्राम का उपयोग कर सकते हैं:

 #include "date.h" #include <iostream> int main() { using namespace date; using namespace std::chrono; std::cout << system_clock::now() << '\n'; } 

जो मेरे लिए सिर्फ आउटपुट:

 2015-08-18 22:08:18.944211 

दिनांक लाइब्रेरी अनिवार्य रूप से std::chrono::system_clock::time_point लिए बस एक स्ट्रीमिंग ऑपरेटर जोड़ता है। यह अन्य बहुत अच्छी कार्यक्षमता भी जोड़ती है, लेकिन इसका उपयोग इस सरल कार्यक्रम में नहीं किया जाता है

यदि आप 2 (स्थानीय समय) पसंद करते हैं, तो एक टाइमज़ोन लाइब्रेरी है जो दिनांक लाइब्रेरी के शीर्ष पर बनाता है। इन दोनों पुस्तकालयों में ओपन सोर्स और क्रॉस प्लेटफॉर्म हैं , यह मानते हुए कि संकलक सी ++ 11 या सी ++ 14 का समर्थन करता है।

 #include "tz.h" #include <iostream> int main() { using namespace date; using namespace std::chrono; auto local = make_zoned(current_zone(), system_clock::now()); std::cout << local << '\n'; } 

जो मेरे लिए सिर्फ आउटपुट:

 2015-08-18 18:08:18.944211 EDT 

नतीजे का प्रकार make_zoned एक date::zoned_time जो एक date::zoned_time का एक जोड़ी है date::time_zone और एक std::chrono::system_clock::time_point यह जोड़ी एक स्थानीय समय का प्रतिनिधित्व करती है, लेकिन आप यूटीसी का प्रतिनिधित्व कैसे कर सकते हैं, इस पर निर्भर करते हुए।

उपरोक्त आउटपुट के साथ, आप देख सकते हैं कि मेरा कंप्यूटर वर्तमान में यूटीसी ऑफ़सेट ऑफ -4 एच के साथ एक टाइमज़ोन में है, और एडीटी का एक संक्षिप्त नाम है।

यदि कुछ अन्य समय क्षेत्र में वांछित है, तो यह भी पूरा किया जा सकता है। उदाहरण के लिए सिडनी में वर्तमान समय का पता लगाने के लिए, ऑस्ट्रेलिया बस चर के निर्माण को local में बदलता है:

 auto local = make_zoned("Australia/Sydney", system_clock::now()); 

और आउटपुट में परिवर्तन होता है:

 2015-08-19 08:08:18.944211 AEST 
 #include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm * timeinfo; time ( &rawtime ); timeinfo = localtime ( &rawtime ); printf ( "Current local time and date: %s", asctime (timeinfo) ); return 0; } 

हां और आप ऐसा कर सकते हैं ताकि मौजूदा-इम्बुड लोकेल द्वारा निर्दिष्ट स्वरूपण नियमों के साथ:

 #include <iostream> #include <iterator> #include <string> class timefmt { public: timefmt(std::string fmt) : format(fmt) { } friend std::ostream& operator <<(std::ostream &, timefmt const &); private: std::string format; }; std::ostream& operator <<(std::ostream& os, timefmt const& mt) { std::ostream::sentry s(os); if (s) { std::time_t t = std::time(0); std::tm const* tm = std::localtime(&t); std::ostreambuf_iterator<char> out(os); std::use_facet<std::time_put<char>>(os.getloc()) .put(out, os, os.fill(), tm, &mt.format[0], &mt.format[0] + mt.format.size()); } os.width(0); return os; } int main() { std::cout << timefmt("%c"); } 

आउटपुट: Fri Sep 6 20:33:31 2013

हमेशा __TIMESTAMP__ प्रीप्रोसेसर मैक्रो होता है

 #include <iostream> using namespace std void printBuildDateTime () { cout << __TIMESTAMP__ << endl; } int main() { printBuildDateTime(); } 

उदाहरण: सूर्य 13 अप्रैल 11:28:08 2014

आप ctime() उपयोग भी कर सकते हैं:

 #include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm * timeinfo; time ( &rawtime ); printf ( "Current local time and date: %s", ctime (&rawtime) ); return 0; } 

मुझे यह क्रिया मेरे क्रियान्वयन के लिए बहुत उपयोगी मिली: C ++ दिनांक और समय

स्पष्ट कोड "YYYYMMDD HHMMSS" आउटपुट स्वरूप प्राप्त करने के लिए मैं अपने कार्यान्वयन में उपयोग किया गया कोड है। परम में यूटीसी और स्थानीय समय के बीच स्विच करने के लिए है। आप अपनी जरूरत को सुइट में आसानी से अपने कोड को संशोधित कर सकते हैं।

 #include <iostream> #include <ctime> using namespace std; /** * This function gets the current date time * @param useLocalTime true if want to use local time, default to false (UTC) * @return current datetime in the format of "YYYYMMDD HHMMSS" */ string getCurrentDateTime(bool useLocalTime) { stringstream currentDateTime; // current date/time based on current system time_t ttNow = time(0); tm * ptmNow; if (useLocalTime) ptmNow = localtime(&ttNow); else ptmNow = gmtime(&ttNow); currentDateTime << 1900 + ptmNow->tm_year; //month if (ptmNow->tm_mon < 9) //Fill in the leading 0 if less than 10 currentDateTime << "0" << 1 + ptmNow->tm_mon; else currentDateTime << (1 + ptmNow->tm_mon); //day if (ptmNow->tm_mday < 10) currentDateTime << "0" << ptmNow->tm_mday << " "; else currentDateTime << ptmNow->tm_mday << " "; //hour if (ptmNow->tm_hour < 10) currentDateTime << "0" << ptmNow->tm_hour; else currentDateTime << ptmNow->tm_hour; //min if (ptmNow->tm_min < 10) currentDateTime << "0" << ptmNow->tm_min; else currentDateTime << ptmNow->tm_min; //sec if (ptmNow->tm_sec < 10) currentDateTime << "0" << ptmNow->tm_sec; else currentDateTime << ptmNow->tm_sec; return currentDateTime.str(); } 

आउटपुट (यूटीसी, ईएसटी):

 20161123 000454 20161122 190454 

यह लिनक्स (आरएचईएल) और विंडोज (x 64) पर जी ++ और ओपनएमपी को लक्षित करने के लिए मेरे लिए संकलित है:

 #include <ctime> #include <iostream> #include <string> #include <locale> //////////////////////////////////////////////////////////////////////////////// // // Reports a time-stamped update to the console; format is: // Name: Update: Year-Month-Day_of_Month Hour:Minute:Second // //////////////////////////////////////////////////////////////////////////////// // // [string] strName : name of the update object // [string] strUpdate: update descripton // //////////////////////////////////////////////////////////////////////////////// void ReportTimeStamp(string strName, string strUpdate) { try { #ifdef _WIN64 // Current time const time_t tStart = time(0); // Current time structure struct tm tmStart; localtime_s(&tmStart, &tStart); // Report cout << strName << ": " << strUpdate << ": " << (1900 + tmStart.tm_year) << "-" << tmStart.tm_mon << "-" << tmStart.tm_mday << " " << tmStart.tm_hour << ":" << tmStart.tm_min << ":" << tmStart.tm_sec << "\n\n"; #else // Current time const time_t tStart = time(0); // Current time structure struct tm* tmStart; tmStart = localtime(&tStart); // Report cout << strName << ": " << strUpdate << ": " << (1900 + tmStart->tm_year) << "-" << tmStart->tm_mon << "-" << tmStart->tm_mday << " " << tmStart->tm_hour << ":" << tmStart->tm_min << ":" << tmStart->tm_sec << "\n\n"; #endif } catch (exception ex) { cout << "ERROR [ReportTimeStamp] Exception Code: " << ex.what() << "\n"; } return; } 
 auto time = std::time(nullptr); std::cout << std::put_time(std::localtime(&time), "%F %T%z"); // ISO 8601 format. 

वर्तमान समय प्राप्त करें या तो std::time() या std::chrono::system_clock::now() (या अन्य घड़ी प्रकार ) का उपयोग कर रहा है।

std::put_time() (सी + 11) और strftime() (सी) उन समय के आउटपुट के लिए कई स्वरूपण प्रदान करते हैं।

 #include <iomanip> #include <iostream> int main() { auto time = std::time(nullptr); std::cout // ISO 8601: %Y-%m-%d %H:%M:%S, eg 2017-07-31 00:42:00+0200. << std::put_time(std::gmtime(&time), "%F %T%z") << '\n' // %m/%d/%y, eg 07/31/17 << std::put_time(std::gmtime(&time), "%D"); } 

फॉर्मैटर्स का क्रम महत्वपूर्ण है:

 std::cout << std::put_time(std::gmtime(&time), "%c %A %Z") << std::endl; // Mon Jul 31 00:00:42 2017 Monday GMT std::cout << std::put_time(std::gmtime(&time), "%Z %c %A") << std::endl; // GMT Mon Jul 31 00:00:42 2017 Monday 

strftime() के strftime() समान हैं:

 char output[100]; if (std::strftime(output, sizeof(output), "%F", std::gmtime(&time))) { std::cout << output << '\n'; // %Y-%m-%d, eg 2017-07-31 } 

अक्सर, कैपिटल फॉर्मेटर का अर्थ "पूर्ण संस्करण" होता है और लोअरकेस का संक्षिप्त अर्थ है (जैसे Y: 2017, y: 17)।


लोकेल सेटिंग्स आउटपुट को बदल देती हैं:

 #include <iomanip> #include <iostream> int main() { auto time = std::time(nullptr); std::cout << "undef: " << std::put_time(std::gmtime(&time), "%c") << '\n'; std::cout.imbue(std::locale("en_US.utf8")); std::cout << "en_US: " << std::put_time(std::gmtime(&time), "%c") << '\n'; std::cout.imbue(std::locale("en_GB.utf8")); std::cout << "en_GB: " << std::put_time(std::gmtime(&time), "%c") << '\n'; std::cout.imbue(std::locale("de_DE.utf8")); std::cout << "de_DE: " << std::put_time(std::gmtime(&time), "%c") << '\n'; std::cout.imbue(std::locale("ja_JP.utf8")); std::cout << "ja_JP: " << std::put_time(std::gmtime(&time), "%c") << '\n'; std::cout.imbue(std::locale("ru_RU.utf8")); std::cout << "ru_RU: " << std::put_time(std::gmtime(&time), "%c"); } 

संभावित उत्पादन ( कोलिरु , कंपाइलर एक्सप्लोरर ):

 undef: Tue Aug 1 08:29:30 2017 en_US: Tue 01 Aug 2017 08:29:30 AM GMT en_GB: Tue 01 Aug 2017 08:29:30 GMT de_DE: Di 01 Aug 2017 08:29:30 GMT ja_JP: 2017年08月01日 08時29分30秒ru_RU: Вт 01 авг 2017 08:29:30 

मैंने यूटीसी में रूपांतरण के लिए std::gmtime() उपयोग किया है std::localtime() स्थानीय समय में कनवर्ट करने के लिए प्रदान किया जाता है।

ध्यान रहे कि asctime() / ctime() जो अन्य उत्तरों में उल्लिखित थे, उन्हें अब पदावनत के रूप में चिह्नित किया गया है और strftime() को प्राथमिकता दी जानी चाहिए।

http://www.cplusplus.com/reference/ctime/strftime/

यह अंतर्निहित विकल्पों का एक उचित सेट प्रदान करने लगता है

यह जी ++ के साथ काम करता है मुझे यकीन नहीं है कि यह आपकी मदद करता है प्रोग्राम आउटपुट:

 The current time is 11:43:41 am The current date is 6-18-2015 June Wednesday Day of month is 17 and the Month of year is 6, also the day of year is 167 & our Weekday is 3. The current year is 2015. 

कोड:

 #include <ctime> #include <iostream> #include <string> #include <stdio.h> #include <time.h> using namespace std; const std::string currentTime() { time_t now = time(0); struct tm tstruct; char buf[80]; tstruct = *localtime(&now); strftime(buf, sizeof(buf), "%H:%M:%S %P", &tstruct); return buf; } const std::string currentDate() { time_t now = time(0); struct tm tstruct; char buf[80]; tstruct = *localtime(&now); strftime(buf, sizeof(buf), "%B %A ", &tstruct); return buf; } int main() { cout << "\033[2J\033[1;1H"; std:cout << "The current time is " << currentTime() << std::endl; time_t t = time(0); // get time now struct tm * now = localtime( & t ); cout << "The current date is " << now->tm_mon + 1 << '-' << (now->tm_mday + 1) << '-' << (now->tm_year + 1900) << " " << currentDate() << endl; cout << "Day of month is " << (now->tm_mday) << " and the Month of year is " << (now->tm_mon)+1 << "," << endl; cout << "also the day of year is " << (now->tm_yday) << " & our Weekday is " << (now->tm_wday) << "." << endl; cout << "The current year is " << (now->tm_year)+1900 << "." << endl; return 0; } 

फीफ़ैड-सीपीपी विभिन्न कार्यों के लिए कई उपयोगिता कक्षाएं प्रदान करता है, ऐसा एक वर्ग दिनांक श्रेणी है जो दिनांक संचालन से लेकर गणित तक बहुत सारी सुविधाएं प्रदान करता है, समय के संचालन के लिए एक टाइमर वर्ग भी उपलब्ध है। आप एक ही देख सकते हैं

localtime_s () संस्करण:

 #include <stdio.h> #include <time.h> int main () { time_t current_time; struct tm local_time; time ( &current_time ); localtime_s(&local_time, &current_time); int Year = local_time.tm_year + 1900; int Month = local_time.tm_mon + 1; int Day = local_time.tm_mday; int Hour = local_time.tm_hour; int Min = local_time.tm_min; int Sec = local_time.tm_sec; return 0; } 

आप सी ++ 11 बार क्लास का उपयोग कर सकते हैं:

  #include <iostream> #include <iomanip> using namespace std; int main() { time_t now = chrono::system_clock::to_time_t(chrono::system_clock::now()); cout << put_time(localtime(&now), "%F %T") << endl; return 0; } 

बाहर डाल दिया:

 2017-08-25 12:30:08 
 #include <Windows.h> void main() { //Following is a structure to store date / time SYSTEMTIME SystemTime, LocalTime; //To get the local time int loctime = GetLocalTime(&LocalTime); //To get the system time int systime = GetSystemTime(&SystemTime) } 

आप boost उपयोग कर सकते हैं:

 #include <boost/date_time/gregorian/gregorian.hpp> #include <iostream> using namespace boost::gregorian; int main() { date d = day_clock::universal_day(); std::cout << d.day() << " " << d.month() << " " << d.year(); }