Tôi cần phải biết nếu một chuỗi đã cho là chuỗi định dạng DateTime hợp lệ vì chuỗi có thể đại diện cho những thứ khác. Tôi đã thử DateTime.ParseExact (somedate.ToString (định dạng), định dạng) nghĩ rằng nó sẽ barf trên một định dạng không hợp lệ, nhưng nó không.Chuỗi chỉ chứa một tập hợp các ký tự
Vì vậy, tôi rất tốt khi chỉ thử nghiệm nếu chuỗi chỉ chứa các ký tự "yYmMdDsShH". Một cái gì đó như std :: string.find_first_not_of sẽ làm việc, nhưng System.String không có điều này.
Tôi nghĩ rằng RegEx có thể làm thủ thuật, nhưng tôi rất yếu với biểu thức chính quy.
Lưu ý rằng LINQ không khả dụng cho phiên bản này (chỉ dành cho .NET 2.0).
Cập nhật
Để làm rõ, tôi cần phải biết nếu một chuỗi nhất định thể hiện một định dạng thời gian ngày và không phải cái gì khác như thế này:
if (input == "some special value")
... // it's a special case value
else if (Environment.GetEnvironmentVariable(input))
... // it's an environment variable name
else if (IsDateTimeFormatString(input))
... // it's a date time format string
else if (input.IndexOfAny(Path.GetInvalidPathChars()) < 0)
... // it's a file path
else
throw new Exception(); // Not a valid input
tôi có thể giới hạn một chuỗi định dạng DateTime chỉ "yYmMdDsShH", hoặc tôi có thể thêm một vài ký tự dấu phân cách vào nó là tốt, nó thuộc vào tôi những gì cho phép hoặc không cho phép.
Bạn đang tìm kiếm các ký tự chuỗi (yYmM .. vv) hoặc các giá trị số có đến đó? (100720 (cho ngày hôm nay)? – AllenG
Cập nhật để làm rõ. – Tergiver