Xác thực định dạng ngày trên dữ liệu bằng LINQ

lập trình


Xin chào, hãy chuyển đổi dữ liệu từ excel sang dữ liệu có thể lập được, bây giờ tôi muốn xác thực định dạng ngày tháng từ dữ liệu có thể lập dữ liệu bằng cách sử dụng LINQ trên dữ liệu có thể lập được,

Dữ liệu của tôi

Ngày id hàng
1 22-07-2024
2 23-09-2024
3 2024-09-23
4 12334-09-23

như đã thấy ở trên, 2 hàng cuối cùng trong bảng dữ liệu không có định dạng “dd-mm-yyyy” hợp lệ, tôi muốn kiểm tra xem cột ngày có thể lập dữ liệu có chứa định dạng ngày hợp lệ không

Những gì tôi đã thử:

tôi đã thử nhiều thứ nhưng không thành công

Giải pháp 1

Rất có thể, bạn không thể.

Bắt đầu bằng cách kiểm tra nguồn Excel: trừ khi ngày nằm trong cột mà Excel nhận dạng là ngày (tức là có thể định dạng được trong Excel) thì đó là một chuỗi và có thể chứa bất kỳ thứ gì bao gồm ngày hợp lệ, ngày không hợp lệ, ngày định dạng sai (mm/dd/ yy thay vì dd/mm/yy chẳng hạn) và thậm chí cả văn bản “Xin chào thế giới”. Nếu đó là một chuỗi, bạn không thể làm gì hữu ích với nó: bạn không thể dựa vào bất cứ thứ gì là “giá trị ban đầu”.

Ví dụ: 01/02/03 là ngày nào? Ngày 1 tháng 2 năm 2003? Ngày 2 tháng 1 năm 2003? Ngày 3 tháng 2 năm 2001? Tất cả chúng đều là những cách giải thích hợp lệ trong cách sử dụng thông thường và điều đó phụ thuộc vào người nhập nó vào ngày mà anh ta mong đợi.

Khi dữ liệu được đưa vào Excel hoặc cơ sở dữ liệu, nó sẽ thiếu bất kỳ “ngữ cảnh ban đầu” nào nên bạn không thể biết ngày dự kiến ​​- đã quá muộn để xác thực ngày theo giai đoạn đó và yêu cầu bạn đưa ra ngụ ý rằng dữ liệu cần xác thực vì bạn đã biết có “dữ liệu xấu” trong đó. Không ai có thể khắc phục điều đó trừ khi ngày tương đương với “Xin chào thế giới” – ngày không hợp lệ chỉ có thể là ngày ở định dạng khác với định dạng bạn mong đợi hoặc chứa tên tháng thay vì số (và để thêm phần thú vị, bằng ngôn ngữ mẹ đẻ của OP thay vì tiếng Anh…)

コメント

タイトルとURLをコピーしました