1

Intel プロセッサを搭載した 32 ビット OS では、DateTime 例: 2/17/2009 12:00:00 AM mm/DD//yyyy であることに注意してください。

AMD プロセッサを搭載した 64 ビット OS では、DateTime (例: 17-02-2009 00:00:00)

1 番目の形式を解析しようとすると、2 番目のプラットフォームでエラーがスローされます。つまり、DateTime.Parse("2/17/2009 12:00:00 AM") - エラーがスローされ、変換できません。一方、同じプラットフォームでは、DateTime.Parse("17/2/2009 12:00:00 AM") が機能します。つまり、DD/MM は問題ありませんが、MM/DD はそうではありません。

これは何が原因ですか?64ビットOS?プロセッサ?

どうすれば問題を解決できますか?

4

2 に答える 2

5

DateTimes 自体にはフォーマットがありません。それらを解析するか、文字列にフォーマットします。(これは数値のようなものです。整数は 16 進数や 10 進数では格納されず、単なる整数です。16 進数または 10 進数でフォーマットできますが、値自体は単なる数値です。)

形式は、オペレーティング システムのカルチャ (より正確には、スレッドのカルチャであり、通常はオペレーティング システムのカルチャと同じです) に依存します。

個人的には、実際にユーザーに文字列を表示していて、カルチャが既に適切であることがわかっている場合を除き、解析または書式設定に使用する書式を明示的に設定するのが好きです。

于 2009-06-26T18:58:36.050 に答える
2

[地域と言語] コントロール パネルで [日付と時刻の形式] を確認します。

また、DateTime で特定の形式を生成する場合は、単純な ToString() を呼び出すだけでなく、必要な形式を示すパラメーターを渡します。同様に、解析する日付の形式がわかっている場合は、TryParseExact() を呼び出して、提供する形式を伝えます。

MSDN の標準の日付と時刻の書式文字列も参照してください。

于 2009-06-26T19:01:03.283 に答える