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-dd | ISO 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
);
এটি একই সময়ে একাধিক ফরম্যাট যাচাই করতে দেয়।