0

これが私の問題です。データベースから取得した日付には「2013年12月31日」が含まれています。この日付に基づいて、形式はmm / dd/yyです。ここで問題となるのは、ユーザーのコンピューターの日付の形式に関係なく、ユーザーは常に日付「2013年12月31日」を、例dd / mm/yyではなくmm/dd/yyとして読み取るようにする方法です。読み取ると、31か月がないため、エラーが含まれています。データベースから受け取った日付に分割方法を試しましたが、ユーザーのコンピューターから独立した形式を確認することができませんでした

4

3 に答える 3

1

日付はデータベースに実際のdate形式として保存されていますか、それとも文字列として保存されていますか?

DateTime.Parseデフォルトでは、 は現在のユーザーの現在のシステム日付/時刻形式設定を使用することに注意してください (つまり、英国のユーザーは dd/MM/yyyy ですが、米国のユーザーは MM/dd/yyyy です) 。均一な解析が必要な場合はDateTime.ParseExact、正確な解析フォーマット文字列を使用して指定します。

覚えておくと便利な経験則の 1 つは、「これまでに を使用しているString.Split場合は、おそらく何か間違ったことをしている可能性がある」ということです (簡単で汚い設計によるプログラムについては例外を設けますが、Format-string の解析については例外を設けます)。 、正規表現、または有限状態マシンは、よりパフォーマンスが高く (文字列の割り当てが少ない)、壊れにくくなっています。

dateデータベースがオブジェクトを として格納している場合、またはdatetime文字列をまったく使用しない場合は、トピックに戻ります。EF クラスの.GetDateString(int)メソッドまたは型付きフィールド プロパティを使用します。IDataReader

于 2013-01-03T04:50:18.217 に答える
0

データベースから同じ形式を読み取るか、画面 (UI) に表示するかは明確ではありません。

SQLサーバーからの場合は、変換の使用を検討して ください<-このリンクをたどってください

于 2013-01-03T04:41:05.860 に答える
0

データベースからどのように日付を取得しましたか? 日付を文字列として保存しましたか?可能であれば、日付をDateTime文字列ではなく変数として保持することを検討してください。不可能な場合は、DateTime.TryParse国際化をサポートし、ユーザーの UI ローカリゼーション設定を理解できる方法を調べてください。

于 2013-01-03T04:50:03.930 に答える