私はアクセスデータベースで動作するC#プログラムを持っています。 (私はアクセスの日時フィールドを持っています - 短い日付) プログラムが誤った日付形式でクラッシュしないようにするにはどうすればよいですか?
例えば: 私のコンピュータでこの形式の日付:dd / MM / yyyy 私がこのフォーマットのコンピュータで私のプログラムを実行した場合:MM / dd / yyyy プログラムがクラッシュするか、私に異常な結果が表示されます
任意の一般的な解決策はありますか? 私はこれのためのC#のコードを得ることができますか?
前もって感謝します
回答:
回答№1は1解析する前に日付を検証する DateTime.TryParse
例えば
string myDate = "01/30/1970";
DateTime validDate;
if (DateTime.TryParse(myDate, out validDate))
{
// Good date, now stored in validDate
}
else
{
// Handle/Cleanup bad date.
}
回答№2の場合は0
あなたがこのことについて心配する必要はありません。System.DateTimeを使用します。 Accessと.Netは日付を数値として保存します。フロントエンド側では、好きなようにフォーマットすることができます。 DateTimeはあなたのためのローカリゼーションの問題を処理することができますので、特別なことをする必要はありません。
回答№3の場合は0
private DateTime ParseDate(string date)
{
DateTime convertedDate;
if (!DateTime.TryParseExact(date, "ddMMyyyy", new CultureInfo("en-US"),
DateTimeStyles.None, out convertedDate))
throw new FormatException(string.Format("Unable to format date:{0}", date));
return convertedDate;
}