dd/MM/yyyy
という形式の文字列を送信しています。この形式は、web.configグローバリゼーション設定に従って、lv-LV
カルチャに解析されています。DateTime.Parse、Latvianカルチャ設定
次に、日付をDateTime.Now
と比較して、それが過去であるかどうかを確認します。
DateTime.Parse
は文字列をdd.MM.yyyy
に変換しますが、DateTime.Nowの形式はなので、比較は常に失敗します。
なぜDateTime.Now
は同じスレッドカルチャ上のDateTime.Parse
の出力と異なるのですか?
ありがとうございます!
(更新)これは私が使用しているコードである:
のinputTextが[DateTime.Nowこの文脈でMMである
DateTime date = DateTime.Parse(InputText, CultureInfo.CurrentCulture);
// Check it's not in the past
this.IsValid = (date.CompareTo(DateTime.Now) > 0);
DD.MM.YYYY形式のフォームからの入力が含まれてLV-LVのCultureInfo [日付]を使用.DD.YYYYフォーマットはDateTime.Parse
私はもっと完全なコードを表示する必要があると思います。 'DateTime'(' .Now'や '.Parse'のようなもの)は独自のフォーマットを持ちません - ddmmとmmddは' DateTime 'ではなく*文字列表現*のプロパティです'価値そのもの。 – AakashM
2つの日付を文字列として比較していますか? 2つのdatetime構造体を比較する場合、toStringがどのようなカルチャを表現しているかは関係ありません。 – Alex