StringからDatetime変換のエラー内容について

日付のStringからDatetimeに変換しているのですが、最近

String ‘’ was not recognized as a valid DateTime.

というエラーが発生しました。

もとは

Datetime.Parse(currentMailMessage.Headers(“Date”))

と書いてたのを

DateTime.ParseExact(currentMailMessage.Headers(“Date”),“ddd, d MMM yyyy HH:mm:ss K”,System.Globalization.CultureInfo.InvariantCulture)

と変更して試しましたが状況に変化がありません。

お気づきの点がありましたら、ご教示いただけますと幸いです。

フォーマットは K の箇所を zzz も試しています。

@tlunlun09

DateTime.ParseExact(currentMailMessage.Headers("Date"), "ddd, dd MMM yyyy HH:mm:ss zzz '(JST)'", System.Globalization.CultureInfo.InvariantCulture)

Hi @tlunlun09

input = "Sun, 28 Jul 2024 20:11:52 +0900 (JST)"

dateTime = DateTime.ParseExact(currentMailMessage.Headers("Date"), "ddd, dd MMM yyyy HH:mm:ss zzz '(JST)'", System.Globalization.CultureInfo.InvariantCulture)

Regards

こんにちは

この入力からしますと、(JST)の部分が邪魔なので

DateTime.Parse(System.Text.RegularExpressions.Regex.Replace(strDate,"\s*\(.*?\)$",""))

とすれば良いように思えます。

ただエラーメッセージが

String ‘’ was not recognized as a valid DateTime.

とのことなので、これは入力が空文字列であることを意味してそうなので、一旦

strDate = currentMailMessage.Headers(“Date”)

としたうえで、変数の中身を念のため確認しておいた方がよさそうにも思えます。
その上で

DateTime.Parse(System.Text.RegularExpressions.Regex.Replace(strDate,"\s*\(.*?\)$",""))