1

入力文字列が正しい形式ではないという例外をスローしている DateTime.ParseExact メソッドに問題があります。

コードは次のとおりです。

class Program
    {
        static void Main(string[] args)
        {
            var rawDate = "Thu, 08 nov 2012 15:19:18 0";
            var _format = "ddd, dd MMM yyyy HH:mm:ss K";
            var date = DateTime.ParseExact(rawDate, _format, CultureInfo.InvariantCulture);
        }
    }

ここSOで正確な日付形式の同様のスレッドをいくつか見つけましたが、誰もそこに問題を報告していません。

私はこれを私のガイドとして従いました:

ddd = Three letter Day of week
MMM = Three letter month
dd = Two digit day of month 01-31  (use "d" for 1-31)
HH = Hours using 24-hour clock. 00-24  (use "H" for 0-24)
mm = Minutes. 00-59
ss = Seconds. 00-59
K = Time zone information
yyyy = 4-digit year

例外の原因は何ですか?

前もって感謝します!

4

4 に答える 4

3

あなたの「K」は少しずれていると思います。

ここのリンクは説明を与えるかもしれません: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx#KSpecifier

これを空白のままにして、0 - K を削除できます。

于 2012-11-08T15:52:52.920 に答える
2

入力文字列のタイムゾーンが間違っています。+00:00 の形式にする必要があります。

日時フォーマット文字列をテストするには、逆に実行します。

Console.WriteLine(DateTime.Now.ToString(_format));

を与える

Thu, 08 Nov 2012 15:50:58 +00:00
于 2012-11-08T15:53:13.250 に答える
1

タイムゾーン情報は、私にとって最も疑わしいようです。

于 2012-11-08T15:51:03.373 に答える
0

これを試して:

var _format = "ddd, dd MMM yyyy HH:mm:ss 0";

ただし、タイムゾーン情報は失われます。

于 2012-11-08T15:53:13.577 に答える