【解決方法】LINQ を使用したデータテーブルの日付形式の検証


こんにちは、Excel からデータテーブルにデータを変換します。データテーブルで LINQ を使用してデータテーブルの日付形式を検証したいと思います。

私のデータテーブル

行IDの日付
1 2024 年 7 月 22 日
2 2024 年 9 月 23 日
3 2024-09-23
4 12334-09-23

上で見たように、データテーブルの最後の 2 行は有効な「dd-mm-yyyy」形式ではありません。データテーブルの日付列に有効な日付形式が含まれていることを確認したいです。

私が試したこと:

たくさんのことを試しましたが成功しませんでした

解決策 1

おそらく、それはできないでしょう。

まず Excel ソースを確認します。Excel が日付として認識する列 (つまり、Excel で書式設定可能) に日付が含まれていない限り、日付は文字列であり、有効な日付、無効な日付、間違った形式の日付 (mm/dd/) など、あらゆるものが含まれる可能性があります。たとえば、dd/mm/yy の代わりに yy)、さらには「Hello world」というテキストも含まれます。 それが文字列の場合、それを使ってできることはほとんど何もありません。「元の値」であることに依存することはできません。

たとえば、01/02/03 は何の日付ですか? 2003年2月1日? 2003年1月2日? 2001年2月3日? それらはすべて一般的に使用されている有効な解釈であり、それを入力した人がそれをどの日付であると予想したかによって異なります。

データが Excel またはデータベースに取り込まれると、「発信元のコンテキスト」が欠落するため、どの日付が意図されていたのかがわかりません。その段階で日付を検証するには遅すぎます。また、作成したリクエストは検証が必要であることを暗示しています。なぜなら、日付はすでに分かっているからです。そこには「悪いデータ」があります。 日付が「Hello world」と同等でない限り、誰もこれを修正できません。無効な日付は、予想とは異なる形式の日付であるか、数字の代わりに月の名前が含まれている可能性があります(さらに楽しいことに、OP の母国語で英語というより…)

コメント

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