2013-10-08 118 views
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; 
    } 
} 
+0

從解析模板中刪除':s' – Bobby5193

+0

您是否認爲「08/10/2013 09:49 PM」與格式「dd/MM/yyyy H:m:s fff」匹配?仔細看一下。 –

回答

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 

這裏是Demo

+0

輸入字符串是'08/10/2013 09:49 PM',但它應該仍然有效。 – gunr2171

+0

@ gunr2171當然,它會工作。嘗試一下 –

+0

我的意思是你使用輸出格式作爲你的例子的輸入。 – gunr2171

2

您的格式字符串不匹配您的輸入數據。嘗試使用格式字符串"dd/MM/yyyy HH:mm:ss tt",並參閱custom date and time format documentation以獲取更多信息。

請注意,如果它失敗,而不是捕獲異常,則應使用DateTime.TryParseExact並檢查返回值。或者如果這裏的失敗代表一次重大失敗,只需使用ParseExact並且不要發現異常。你真的想要默認爲DateTime.Now?對我來說似乎不太可能。你應該強烈地考慮讓異常傳播起來。

此外,您的方法不會返回特定格式 - 它會返回DateTime。這並不知道格式的任何內容 - 如果您想將值轉換爲特定的格式,您應該特別這樣做。

相關問題