0

今回Mon, 25 03 2013 00:00:00 GMTはUS ESTへの変換を検討しています。これは以前にここに投稿されたことを知っています: C# でのタイム ゾーンの変換ですが、正確に正しくない文字列で何かをしなければならないというエラーが引き続き発生します。

これが私のコードです:

var dateString = "Mon, 25 03 2013 00:00:00 GMT";
var date = Convert.ToDateTime(dateString);
var result = TimeZoneInfo.ConvertTime(date, TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time"));
Console.WriteLine(result);

これが私のエラーです:

Unhandled Exception: System.FormatException: String was not recognized as a valid DateTime.
at System.DateTime.Parse (System.String s, IFormatProvider provider, DateTimeStyles styles) [0x00000] in :0 
at System.DateTime.Parse (System.String s, IFormatProvider provider) [0x00000] in :0 
at System.DateTime.Parse (System.String s) [0x00000] in :0 

System.Convert.ToDateTime (System.String 値) [0x00000] で:0 Program.Main () で [0x00000] で:0

日付を から03に変更しようとしましMarたが、それを機能させることさえできませんでした。他のフォーラムでコードを試して、それが機能するかどうかを確認しましたが、失敗しました. コードが何をしようとしているのかは完全に理解していますが、エラーがスローされる理由がわかりません。

どんな助けでも大歓迎です!ありがとう!

4

3 に答える 3

0

文字列が常に GMT で終わる場合は、次を使用できますParseExact

var dateString = "Mon, 25 03 2013 00:00:00 GMT";
var date = DateTime.ParseExact(dateString,
                               "ddd, dd MM yyyy hh:mm:ss GMT", 
                               CultureInfo.InvariantCulture);
var result = TimeZoneInfo.ConvertTime(date, TimeZoneInfo.FindSystemTimeZoneById("US Eastern Standard Time"));
于 2013-07-09T21:09:32.920 に答える