次の形式の文字列をC#でDateTimeに変換するにはどうすればよいですか:
- 5 月 17 日午後 4 時 52 分 GMT+01:00
- 5 月 17 日午後 3 時 57 分 EDT
.NET はこれらの文字列の変換をサポートしていますか?
次の形式の文字列をC#でDateTimeに変換するにはどうすればよいですか:
.NET はこれらの文字列の変換をサポートしていますか?
残念ながらDateTime.Parse
、これらのタイムゾーンは理解できません。あいまいな略語が多数あるため、3文字の略語はタイムゾーンを指定するのに適した方法ではありません。たとえば、「CST」は「中部標準時」または「中国標準時」のいずれかを意味します。
タイムゾーンがどの国から来ているのかを知らない限り(そして私はあなたが知らないのではないかと思います)、おそらく運が悪いでしょう。
DateTime.Parse()
これらの形式のいずれも認識しません。ただし、代わりにParseExact()を使用する場合は、カスタム形式を指定できます。DateTime形式の文字列を指定する方法については、こちらをご覧ください。
たとえば、最初のフォーマットのフォーマット文字列は"MMMM dd, h:mmtt 'GMT'zzz"
。
DateTime形式の文字列を使用して非数値のタイムゾーン指定をキャプチャする方法はないため、2番目の形式は少し注意が必要です。たぶん、事前にその状況をチェックしたいと思います。その場合、最後の3文字を切り取って、ルックアップテーブルを使用してGMTオフセットに変換し、文字列の最初の部分を解析して取得した日時に適用できる場合があります。
Convert.ToDateTime(yourDateTimeString);
DateTimeParseメソッドを試してください。