তারিখকে স্ট্রিং এ রূপান্তর করা

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 মাসের জন্য, এবং তাই ম্যাপিং করছেন।

দেখুন আরও