C++:
তারিখকে স্ট্রিং এ রূপান্তর করা
কীভাবে:
আধুনিক সি++ এ, <chrono>
এবং <iomanip>
লাইব্রেরিগুলি আপনার জন্য ডেট-টাইম অপারেশনের জন্য বন্ধু। এখানে std::put_time
ব্যবহার করে একটি দ্রুত পদ্ধতি দেওয়া হল:
#include <iostream>
#include <iomanip>
#include <chrono>
#include <sstream>
int main() {
auto now = std::chrono::system_clock::now(); // বর্তমান সময় পেতে
auto time = std::chrono::system_clock::to_time_t(now); // time_t এ রূপান্তর
// ফরম্যাটিং এর জন্য tm স্ট্রাক্চারে রূপান্তর
std::tm tm = *std::localtime(&time);
// আউটপুটের জন্য স্ট্রিং স্ট্রীম
std::stringstream ss;
ss << std::put_time(&tm, "%Y-%m-%d %H:%M:%S"); // ফর্ম্যাট: YYYY-MM-DD HH:MM:SS
std::string date_str = ss.str(); // স্ট্রিং এ রূপান্তর
std::cout << date_str << std::endl; // তারিখের স্ট্রিং আউটপুট করুন
return 0;
}
নমুনা আউটপুট (বর্তমান তারিখ এবং সময়ের উপর নির্ভর করে):
2023-03-15 14:25:30
বিস্তারিত আলোচনা
<chrono>
এর মধ্যে এসেছে আগে, সি++ প্রোগ্রামারদের প্রায়ই <ctime>
এর মাধ্যমে সি-স্টাইল সময় হ্যান্ডলিং নিয়ে লড়াই করতে হতো। এটি কম সহজবোধ্য এবং ম্যানুয়াল মেমরি ম্যানেজমেন্ট এবং প্ল্যাটফর্ম-নির্ভর সমস্যাগুলির কারণে আরও ত্রুটিপূর্ণ ছিল।
std::put_time
এর বিকল্পগুলির মধ্যে strftime
ব্যবহার করা অন্তর্ভুক্ত, তবে এটি আরও সি-স্টাইল। তৃতীয়-পক্ষের লাইব্রেরিগুলি যেমন Boost.Date_Time নির্ভরতা যোগ করার খরচে আরও ফাংশনালিটি অফার করতে পারে।
std::put_time
এর ফরম্যাট স্পেসিফায়ারগুলি বুঝতে একটি মুখ্য বাস্তব বিস্তারিত হল, যেগুলি strftime
এ ব্যবহৃতদের অনুরূপ। আপনি প্লেসহোল্ডারগুলিকে তারিখ বা সময়ের উপাদানগুলি — %Y
পূর্ণ বছরের জন্য, %m
মাসের জন্য, এবং তাই ম্যাপিং করছেন।