কম্পিউটার টিউটোরিয়াল

C# Regex ব্যবহার করে ডেট ফরম্যাট ভ্যালিডেশন

C#-এ ডেট ফরম্যাট যাচাই করার জন্য DateTime.TryParseExact মেথড সবচেয়ে নিরাপদ এবং সুপারিশ করা পদ্ধতি। এটি রেগুলার এক্সপ্রেশন (Regex) চেয়ে বেশি নির্ভরযোগ্য কারণ এটি ক্যালেন্ডার নিয়মগুলো (যেমন লিপ ইয়ার, মাসের দিন সংখ্যা ইত্যাদি) স্বয়ংক্রিয়ভাবে যাচাই করে।

পদ্ধতি: DateTime.TryParseExact

এই মেথড একটি স্ট্রিং কে নির্দিষ্ট ফরম্যাট অনুযায়ী পার্স করার চেষ্টা করে। সফল হলে true রিটার্ন করে এবং আউট প্যারামিটারে DateTime অবজেক্ট পাওয়া যায়।

সম্পূর্ণ উদাহরণ

using System;
using System.Globalization;

namespace Demo
{
    class Program
    {
        static void Main(string[] args)
        {
            DateTime dateValue;
            string input = "08/14/2018";
            string format = "MM/dd/yyyy";

            bool isValid = DateTime.TryParseExact(
                input,
                format,
                CultureInfo.InvariantCulture,
                DateTimeStyles.None,
                out dateValue
            );

            Console.WriteLine($"ইনপুট: {input}");
            Console.WriteLine($"ফরম্যাট: {format}");
            Console.WriteLine($"বৈধ কিনা: {isValid}");
            
            if (isValid)
            {
                Console.WriteLine($"পার্স করা ডেট: {dateValue:yyyy-MM-dd}");
            }
        }
    }
}

আউটপুট

ইনপুট: 08/14/2018
ফরম্যাট: MM/dd/yyyy
বৈধ কিনা: True
পার্স করা ডেট: 2018-08-14

প্রচলিত ডেট ফরম্যাট স্ট্রিংগুলো

ফরম্যাট স্ট্রিংব্যাখ্যাউদাহরণ
dd/MM/yyyyদিন/মাস/বছর (ইউরোপিয়ান)14/08/2018
MM/dd/yyyyমাস/দিন/বছর (US)08/14/2018
yyyy-MM-ddISO 8601 স্ট্যান্ডার্ড2018-08-14
dd MMM yyyyদিন মাসের সংক্ষিপ্ত নাম বছর14 Aug 2018

Regex কেন এড়িয়ে চলা উচিত

  • Regex কেবল প্যাটার্ন ম্যাচ করে, ডেটের বৈধতা যাচাই করে না (যেমন 31/02/2023 Regex-এ পাস করবে কিন্তু অবৈধ ডেট)।
  • TryParseExact লিপ ইয়ার, মাসের দিন সংখ্যা ইত্যাদি সব চেক করে।
  • কলচার-সেনসিটিভ পার্সিং সাপোর্ট করে।

এডভান্সড ব্যবহার: একাধিক ফরম্যাট সাপোর্ট

string[] formats = { "MM/dd/yyyy", "dd/MM/yyyy", "yyyy-MM-dd" };
bool isValid = DateTime.TryParseExact(
    input, 
    formats, 
    CultureInfo.InvariantCulture, 
    DateTimeStyles.None, 
    out dateValue
);

এটি একই সময়ে একাধিক ফরম্যাট যাচাই করতে দেয়।

  1. জাভাতে SimpleDateFormat দিয়ে বছর ফরম্যাট করার পদ্ধতি

  2. জাভাতে SimpleDateFormat দিয়ে ডেট স্ট্রিং ফরম্যাট করার পদ্ধতি

  3. জাভা রেজেক্স ব্যবহার করে তারিখ স্ট্রিং গ্রহণ (MM-dd-yyyy ফরম্যাট)

  4. পাইথন ডেটকে JSON ফরম্যাটে কনভার্ট কীভাবে করবেন?