Cách chuẩn xác để kiểm tra định dạng ngày tháng trong C# là sử dụng DateTime.TryParseExact. Phương thức này cố gắng chuyển chuỗi thành DateTime theo định dạng chỉ định, trả về true nếu thành công, false nếu thất bại.
Ví dụ minh họa
using System;
using System.Globalization;
class Program
{
static void Main()
{
string input = "08/14/2018";
string format = "MM/dd/yyyy";
DateTime result;
bool isValid = DateTime.TryParseExact(
input,
format,
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out result);
Console.WriteLine($"Định dạng hợp lệ: {isValid}");
if (isValid)
{
Console.WriteLine($"Ngày tháng: {result:dd/MM/yyyy}");
}
}
}
Kết quả đầu ra
Định dạng hợp lệ: True Ngày tháng: 14/08/2018
Lưu ý quan trọng: Không nên dùng Regex để validate ngày tháng vì rất khó xử lý đúng các quy tắc năm nhuận, số ngày trong tháng, v.v. TryParseExact đã xử lý sẵn mọi trường hợp đó.