我有一個過濾器字段,允許通過部分或全部日期進行搜索,可以輸入不同的格式 - 即用戶想要輸入它的方式,所以TryParseExact不看像最好的選擇。DateTime.TryParse在yyyy失敗
的問題是,下面的代碼:
DateTime.TryParse(fromDate.Text, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateFromValue)
解析一切,但YYYY字符串。例如。 「05/1980」和「1980/05」被確認爲{1/05/1980 12:00:00 AM},但「1980」失敗。
我懷疑解析器無法區分,比如說,yyyy和ffff,當它得到的是一個4位數的序列,但我仍然需要得到這個工作。有沒有比這更優雅的方式來做到這一點?
if(!DateTime.TryParse("1980", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
DateTime.TryParseExact("1980","yyyy",CultureInfo.InvariantCulture, DateTimeStyles.None, out date);
還是我這樣做是完全錯誤的?
預先感謝您!
好一點 - 我要多加小心當copypasting!感謝您指出:) 在這種特殊情況下,我會與TryParse一起猜測缺失的日期和月份(例如默認1月1日) - 如果只有它可以做到這一點:( –