C++ स्टैंडर्ड लाइब्रेरी प्रॉपर डेट टाइप प्रदान नहीं करती। C++ डेट और टाइम मैनिपुलेशन के लिए स्ट्रक्ट्स और फ़ंक्शन्स C से इनहेरिट करता है। डेट और टाइम से संबंधित फ़ंक्शन्स और स्ट्रक्ट्स को एक्सेस करने के लिए, आपको अपने C++ प्रोग्राम में <ctime> हेडर फ़ाइल शामिल करनी होगी।
चार टाइम-संबंधित टाइप्स हैं: clock_t, time_t, size_t, और tm। टाइप्स - clock_t, size_t और time_t सिस्टम टाइम और डेट को किसी प्रकार के इंटीजर के रूप में दर्शाने में सक्षम हैं।
स्ट्रक्चर टाइप tm डेट और टाइम को C स्ट्रक्चर के रूप में रखता है जिसमें निम्नलिखित एलिमेंट्स होते हैं:
struct tm {
int tm_sec; // सेकंड्स (0-61)
int tm_min; // मिनट्स (0-59)
int tm_hour; // घंटे (0-23)
int tm_mday; // महीने का दिन (1-31)
int tm_mon; // महीना (0-11, जनवरी=0)
int tm_year; // 1900 के बाद के साल
int tm_wday; // रविवार के बाद के दिन (0-6)
int tm_yday; // 1 जनवरी के बाद के दिन (0-365)
int tm_isdst; // डेलाइट सेविंग टाइम फ्लैग
}
मान लीजिए आप वर्तमान सिस्टम डेट और टाइम प्राप्त करना चाहते हैं, या तो लोकल टाइम के रूप में या कोऑर्डिनेटेड यूनिवर्सल टाइम (UTC) के रूप में। इसे प्राप्त करने का उदाहरण निम्नलिखित है:
उदाहरण
#include <iostream>
#include <ctime>
using namespace std;
int main() {
// वर्तमान सिस्टम पर आधारित वर्तमान डेट/टाइम
time_t now = time(0);
char* dt = ctime(&now); // now को स्ट्रिंग फॉर्म में बदलें
cout << "लोकल डेट और टाइम है: " << dt << endl;
// UTC के लिए now को tm स्ट्रक्चर में बदलें
tm* gmtm = gmtime(&now);
dt = asctime(gmtm);
cout << "UTC डेट और टाइम है: " << dt << endl;
}
आउटपुट
लोकल डेट और टाइम है: Fri Mar 22 13:07:39 2019
UTC डेट और टाइम है: Fri Mar 22 07:37:39 2019
मुख्य फ़ंक्शन्स
| फ़ंक्शन | विवरण |
|---|---|
time() |
वर्तमान कैलेंडर टाइम (time_t) प्राप्त करें |
ctime() |
time_t को स्ट्रिंग में बदलें |
localtime() |
time_t को लोकल tm स्ट्रक्चर में बदलें |
gmtime() |
time_t को UTC tm स्ट्रक्चर में बदलें |
asctime() |
tm स्ट्रक्चर को स्ट्रिंग में बदलें |
strftime() |
कस्टम फॉर्मेट में tm को स्ट्रिंग में बदलें |
कस्टम फॉर्मेटिंग (strftime)
#include <iostream>
#include <ctime>
using namespace std;
int main() {
time_t now = time(0);
tm* ltm = localtime(&now);
char buffer[80];
strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", ltm);
cout << "फॉर्मेटेड: " << buffer << endl; // 2024-01-15 14:30:25
strftime(buffer, 80, "%A, %B %d, %Y", ltm);
cout << "पूरा फॉर्मेट: " << buffer << endl; // Monday, January 15, 2024
return 0;
}
आधुनिक C++ (C++20) - <chrono>
#include <iostream>
#include <chrono>
#include <format>
using namespace std;
using namespace std::chrono;
int main() {
auto now = system_clock::now();
auto in_time_t = system_clock::to_time_t(now);
cout << "वर्तमान समय: " << format("{:%Y-%m-%d %H:%M:%S}", now) << endl;
return 0;
}