10

文字列を日時に変換しようとしています

私は使用しています

DateTime convertedDate = DateTime.Parse(lastModificationDate);

日付を変換する

私の問題は、日付が英国の形式になることもあれば、米国の形式になることもあります

すなわち英国11/09/2011 10:34 米国2/28/2010 13:56

文字列がどちらの形式になるかわからない場合、つまり us または uk の両方の形式をどのように処理できますか?

4

2 に答える 2

17

基本的にできません。十分なデータがありません。人間として、ここに関係する日付はどれですか?

11/09/2011 10:34

それは 9 月 11 日ですか、それとも 11 月 9 日ですか。

人間として区別できないのなら、コンピューターがそうする可能性はありません。

同じデータ ソースの他の場所からシグナルを取得できる場合、それが出発点です。たとえば、ヒューリスティックにすべての日付を米国の形式として解析し、すべての日付を英国の形式として解析し、100% パスした場合英国の形式ですが、米国の形式では 60% が失敗します (日が無効な月として解析されるため)、英国の日付であると合理的に推測できます。

ただし、これが完全な解決策になることはありません。両方の形式ですべて有効な (ただし意味が異なる)一連の日付を持つ 1 つのデータ ソースを使用できるためです。

于 2012-11-06T16:42:17.463 に答える
1

まさにこの理由から、日時を標準化された形式 (通常は UTC) でデータベースに保存する必要があります。

次に、javascript などを使用して、UTC からユーザーのローカル日時を解析できます。

于 2012-11-06T16:45:30.600 に答える