0

文字列を日時に変換しようとしているときにこのエラーが発生しました「文字列は有効なDateTimeとして認識されませんでした」

私の文字列値: "09/25/2012 11:00:36:156"

コード :

capture = Convert.ToDateTime(newRecord.CaptureTime),
4

2 に答える 2

2

正規表現を使用することをお勧めします。検証入力文字列と DateTime 変換の堅牢なメカニズムがあります。

void Main()
{
    string datestring = "09/25/2012 11:00:36:156";

    string regexpr = @"(?x)(?i)
                    (\d{1,4}) [./-]
                    (\d{1,2}) [./-]
                    (\d{1,4}) [\sT]  (\d+):(\d+):(\d+) \s? (A\.?M\.?|P\.?M\.?)?";

    DateTime capture = new DateTime(); // set to default value in case datestring isn't valid

    if (Regex.IsMatch(datestring, regexpr)
        && DateTime.TryParse(Regex.Match(datestring, regexpr).Groups[0].Value, out capture))
    {    
        // convert is succeded
    }
    else
    {
        // Handle invalid dateString
    }

    Console.WriteLine(capture);
}

またはDateTime.TryParseExact()。詳細はこちらをご覧ください

于 2012-10-18T07:10:22.587 に答える
1

問題は、最後のコロン記号(':')が。に置き換えられることです。2012年9月25日11:00:36:156

        var dateString = "09/25/2012 11:00:36:156";
        var modifiedString = dateString.Substring(0, dateString.Length - 4) + "." + dateString.Substring(20);
        //var modifiedString = dateString.Substring(0, dateString.Length - 4);
        var dateValue = Convert.ToDateTime(modifiedString);
于 2012-10-18T06:56:34.087 に答える