2017-05-20 6 views
-2

私は自分のプログラムでペルシア語日付(イランの日付形式またはJalaliカレンダー)を使用しています。ペルシアンカレンダー形式の文字列が有効なDateTimeとして認識されませんでした

と私は、この使用する場合:

string A = "1396/2/30"; 
string Test = String.Format("{0:yyyy/MM/dd}", Convert.ToDateTime(A)); 

を私は次のエラーを取得する:

An exception of type 'System.FormatException' occurred in mscorlib.dll but was not handled in user code. Additional information: String was not recognized as a valid DateTime.

+1

可能な重複[文字列が有効なDateTimeの "形式DD/MM/YYYY" として認識されませんでした](http://stackoverflow.com/questions/2193012/string-was -not-recognized-a-valid-datetime-format-dd-mm-yyyy) – ASh

+1

「CurrentCulture」は何ですか?あなたのコードで_any_カレンダーを使用しないことに注意してください。 –

+0

受け入れられた答えだけでなく、Noda Timeプロジェクト(http://nodatime.org)の使用を検討することをお勧めします。これは、BCLよりもはるかに明確なカレンダーのサポートと考えています。 (たとえば、解析した後でも、「DateTime」は、それがペルシャのカレンダーの値から解析されたことを「忘れる」でしょう...) –

答えて

2

DataTime.ParseExact()代わりのConvert.ToDateTime()を使用してみてください、その後FA-IR CultureInfoを作成します。

更新

var persianCultureInfo = new CultureInfo("fa-IR"); 
persianCultureInfo.DateTimeFormat.Calendar = new PersianCalendar(); 
string dateString = "1396/02/30"; 
DateTime MyDateTime = DateTime.ParseExact(dateString, "yyyy/MM/dd", persianCultureInfo); 
+0

それはうまくいかなかった: "文字列が有効なDateTimeとして認識されませんでした。 「DametガルムVALI Nashod :(」 –

+1

PersianCalndar' 'の新しいインスタンスに' DataTimeFormat'カレンダーを変更してみてください更新答えは問題なく動作します – 0xaryan

+0

新しいエラー:。。「与えられた文化のために有効ではありませんカレンダー」 –

関連する問題