ユーザーのローカル日付形式の設定に応じて日付形式を変更する方法があるかどうかを知りたいです。DBに保存する日付ですYYYY-MM-DD
が、ユーザーの形式はDD-MM-YYYY
やDD.MM.YYYY
. 私のアプリケーションが常にローカルの日付形式で日付を取得し、SQL サーバーが常にYYYY-MM-DD
保存する日付を受け取るようにするためのクリーンでエレガントな方法は何ですか。
3 に答える
DBではそれは
YYYY-MM-DD
いいえ。正しく行うと、Dbのストレージにフォーマットがありません。たとえば、数値として保存されます。
アプリケーションが常にローカルの日付形式で日付を取得するようにするためのクリーンでエレガントな方法は何ですか
アプリケーションはそれをバイナリ値としても受け取ります。文字列になるたびにフォーマットについて考える必要があります。
ローカル日付形式
そのためには、マシン構成に依存することができます datevalue.ToString()
。
しかし、通常、あなたはコントロールを取りたいです: datevalue.ToString(specificCultureInfo)
オブジェクトにDateTime
は形式がありません。おそらく、日付の文字列表現について話しているでしょう。
を呼び出して、ユーザーのそれぞれのカルチャ設定を使用して、日付を文字列として返すことができます。DateTime.ToShortDateString()
DateTime date = new DateTime(2012, 01, 01);
string dateStringInCurrentCultureFormat = date.ToShortDateString();
日付は常に datetime オブジェクトに保存する必要があります。日付を解析するには、日付形式がわかっている場合は DateTime.TryParseExcact を使用し、ユーザーの好みを使用する場合は TryParse を使用できます。ただし、専用の日付コントロールを使用してユーザーから日付を取得する方が適切です。