DateTime.Nowオブジェクトをカルチャ( "ar-EG")からカルチャ( "en-us" 「)私はそれが正常に動作コードstring cnow = DateTime.Now.ToString(new CultureInfo("en-US"));
のこの部分を使用して[ص/م]時間短縮形を取り除くために。しかし、このコードDateTime dt = DateTime.Parse(cnow)
を使用してバックDateTimeオブジェクトに変換しようとしたとき、私は、この例外DateTime.Nowを "ar-EG"から "en-US"に変換してص/ time時刻の省略を避ける
を取得文字列が有効なDateTimeとして認識されませんでした
これがなぜ発生するのかわかりません。この場合、この変換をどのように行うのですか?
- 更新 -
私は上記のように二つの異なる文化を持つ2つの異なる日付の間のTimeSpanを取得しようとしているとして、この変換を行う必要があります。
- 更新2 -
私のアプリケーションは、多くの異なる文化で実行すると、データベースにこれらの日付を挿入するときにエラーが生じますので、この変換の必要がある。
「DateTime」には、01/01/0001の開始時の深夜から発生した100ns間隔の数が格納されます。 *任意の*文字列は含まれません。 'DateTime.Now'は2つの異なるスレッドから正確に同じ2つの異なるカルチャを使用して呼び出され、2つの同じ*値を返します。 –
Re:あなたの更新、いいえ、彼らはまったく文化を覚えていません。私が言ったように、それは[01/01/0001以降のチックの数](https://referencesource.microsoft.com/#mscorlib/system/datetime.cs,130)です。これは、 'Kind'プロパティを実装するための上位ビットのカップルを持つ、単一インスタンスのUInt64です。あなたの問題が何であれ、2つの 'DateTime'オブジェクトを使って作業しているのであれば、書式や文化の問題ではありません。 –
' en-US'カルチャで文字列を作成しましたが、_expect_で 'ar-EG' (少なくとも私はそれがあなたの 'CurrentCulture'だったと仮定します)。あなたはここで何が_ワロングなのか見ていますか? –