string s = "May 16, 2010 7:20:12 AM CDT
DateTimeオブジェクトに変換したい。以下のコードでは、既知の形式でテキストを解析しようとすると、日付形式を変換できないというエラーが表示されます。
timeStamp = matches[0].Groups[1].Value;
dt = DateTime.ParseExact(timeStamp, "MMM dd, yyyy H:mm:ss tt", null);
タイムゾーンはCDT UTCとして届きます...そして問題の原因は何ですか、それとも私のフォーマットですか?
これを試して:
string dts = "May 16, 2010 7:20:12 AM CDT";
DateTime dt =
DateTime.ParseExact(dts.Replace("CDT", "-05:00"), "MMM dd, yyyy H:mm:ss tt zzz", null);
編集:
夏時間については DateTime.IsDaylightSavingTime および TimeZone.CurrentTimeZone を検討してください。
DateTimeが明確にDateTimeKind.Utcであることを確認してください。 「GMT」は避けてください。夏時間にはあいまいです。
var dt = new DateTime(2010, 1, 1, 1, 1, 1, DateTimeKind.Utc);
string s = dt.ToLocalTime().ToString("MMM dd, yyyy HH:mm:ss tt \"GMT\"zzz");
出力されます:2010年12月31日19:01:01 pm GMT-06:00
詳細については、これを参照してください Link