異なるプラットフォーム上のDateTime問題(.NET 2.0)
-
20-08-2019 - |
質問
32ビットOS上で、Intelプロセッサと、 日時など2009年2月17日午前12:00:00 それがあることに注意してください:MM / DD // YYYY
64ビットOS上で、AMDプロセッサと、 日時など17-02-2009夜12時○○分00秒
私は第一のフォーマットを解析しようとすると、さて、それは第二プラットフォーム上でエラーがスローされます。 その手段 - DateTime.Parse(「2009年2月17日12時00分00秒AMを」) - エラーをスロー - 変換することはできません。 一方、同じプラットフォーム上で、 DateTime.Parse( "17/2/2009 12時00分00秒AM")が動作します!それはMM / DDではない、DD / MMは大丈夫であることを意味します。
この原因は何? 64ビットのOS?プロセッサ?
どのように私はこの問題を取り除くのですか?
解決
日付時刻自体が形式を持っていません。あなたはそれらを解析したり、文字列にそれらをフォーマットします。 (それは数字のようなものだ - 。整数は進または小数に格納されていない、彼らはあなたが進または小数でそれらをフォーマットすることができ、単に整数だが、値自体は単なる数である。)
の形式は、オペレーティング・システムの文化に依存するであろう(より正確に、または、通常、オペレーティングシステムと同じであるスレッドの培養)。
個人的に私は明示的に私が実際にユーザーに文字列を表示していない限り、私は構文解析やフォーマットのいずれかに使用するフォーマットを設定し、文化がすでに適切であることを知っていただきたい。
他のヒント
「地域と言語」コントロールパネルで、あなたの「日付と時刻の形式」をチェックします。
あなたは日時が特定のフォーマットを生成する場合は、また、単なるToStringメソッド()を呼び出し、それにしたい形式を示すパラメータを渡しません。あなたが解析することを求めている日付の形式を知っていれば同様に、TryParseExact()を呼び出し、それをあなたが提供しているフォーマットを教えてくれます。
の標準の日付と時刻の形式の文字列も参照してください。 P>