1

日時文字列をDateTimeデータ型に解析したいと考えています。

文字列の形式は のようなもの08/10/2013 09:49 PMで、フォームに移動したい2013-10-08 21:49:05.6500000

以下は私のコードですが、うまくいきません。

public static DateTime ConvertDateTime(String arg_dateTime)
{
    try
    {
        return DateTime.ParseExact(arg_dateTime, 
            "dd/MM/yyyy H:m:s fff", 
            System.Globalization.CultureInfo.InvariantCulture);
    }
    catch(Exception exp)
    {
        return DateTime.Now;
    }
}
4

2 に答える 2

2

フォーマット文字列が入力データと一致しません。のフォーマット文字列を試してください。"dd/MM/yyyy HH:mm:ss tt"詳細については、カスタムの日付と時刻のフォーマットに関するドキュメントを参照してください。

失敗した場合に例外をキャッチするのではなくDateTime.TryParseExact、戻り値を使用して確認する必要があることに注意してください。または、ここでの失敗が大きな失敗を表している場合はParseExact、例外をキャッチせずにそのまま使用してください。本当にをデフォルトにしますDateTime.Now? 私にはありそうにないようです。例外を伝播させることを強く検討する必要があります。

また、メソッドは特定の形式を返すのではなく、DateTime. それはフォーマットについて何も知りません-値を特定のフォーマットに変換したい場合は、具体的に行う必要があります。

于 2013-10-08T16:45:19.840 に答える
0

それはあなたParseExactだけを使う必要がありますか?

なぜParseですか?

string arg_dateTime = "2013-10-08 21:49:05.6500000";
var dt =  DateTime.Parse(arg_dateTime, System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(dt);//this works

デモはこちら

于 2013-10-08T16:39:16.400 に答える