0

私は英国で開発したアプリケーションを持っています。これを米国のサーバーにデプロイしましたが、日付が正しくありません。日時ピッカーを使用して、形式を dd/mm/yyyy に設定しました。日時ピッカーを選択すると、要素を調べると、日付が実際には 12/10/2013 であることがわかります。

これをデータベースに保存すると、これは 2013-12-10 として変換され、データベースからこれを取得すると、実際には 10/12/2013 になります。

また、コードで DateTime.Now を呼び出すと、これは米国形式 (mm/dd/yyyy) として返されます。すべてが一貫している必要があります。どのように?

Web構成でカルチャ情報を設定しようとしました<globalization uiCulture="en-GB" culture="en-GB" />が、これは効果がありません.SQLサーバーに日付をGETDATE()として保存している領域もあり、これは次のように渡されることもありますDateTime

4

1 に答える 1

0

私は実際にあなたが間違った振る舞いを扱っているとは思いません.SAMEの基礎となるアイテムの異なるTEXT表現を扱っている可能性が最も高いDateTimeですDATE:

  • Visual Studio がen-US地域設定のあるシステムで実行されている場合、そのインスペクターは、デバッガーで日付を表示するときに明らかにそれらの設定を使用します。
  • SQLのデータ型の列を見ている場合DATE、SQL は文字列に対して "SQL" 標準表現を使用する可能性があり、それが "2013-12-10" と表示される理由です。
  • Object Inspector を使用DateTimeしてコントロールに選択された値を検査している場合、Visual Studio は再びシステムの設定を使用してその日付を表示しています。実際のバイナリ表現を表示することはできません。

問題の核心:

  • DateTime実際の日付 (変数またはDATEデータベース列に格納されている) とその TEXT 表現を区別してください。
  • 正しい日付を取得していることを確認してください。
  • アプリケーションのユーザーに、期待される形式で日付が表示されることを確認してください。
  • 開発者だけが目にする日付のテキスト表現 (SQL スタイルの表現と Visual Studio のインスペクター表現) を扱う方法を学びます。
于 2013-10-05T15:45:44.990 に答える