2011-06-13 57 views
3

我使用的返回日期爲字符串的API,就像這樣:如何從字符串中創建可讀的日期和時間?

2011-06-13T21:15:19Z

正如你能想象這是不是最簡單的格式瞭解。我的目標是讓它像這樣的格式:

下午9:15 - 2011年6月13日

任何人都知道如何做到這一點?我需要使用正則表達式還是有辦法將其轉換爲DateTime

注意:我試圖使用DateTime.ParseExact方法,但它沒有奏效。如果這是解決方案,請告訴我如何轉換上面的示例。謝謝。

+1

怎麼樣DateTime.Parse,這是更寬容? – 2011-06-13 23:17:28

回答

3
string date = "2011-06-13T21:15:19Z"; 
DateTime dt = DateTime.Parse(date); 
+0

+1先回答 – 2011-06-13 23:19:36

+0

謝謝,這個工程。 – loyalpenguin 2011-06-13 23:25:02

+0

@loyalpenguin - 不是問題。似乎答案是一致的 – Xaisoft 2011-06-13 23:26:44

3

我剛剛用TryParse嘗試過它,它工作。使用try分析比分析更好,因爲您可以處理字符串未解析的情況。如果你確定傳遞的字符串是靜態的,那麼我想這是沒有必要的。

 string Time = "2011-06-13T21:15:19Z"; 

     DateTime t; 
     if (DateTime.TryParse(Time, out t)) 
     { 
      //Works 
     } 
+1

當然。如果API不是毫無疑問地確保以確切格式返回日期時間,那麼TryParse將取代Parse。 – JesseBuesking 2011-06-14 20:59:04

2

DateTime.Parse似乎該字符串做工精細:

var dt = DateTime.Parse("2011-06-13T21:15:19Z"); 
Console.WriteLine(dt.ToString("h:mmtt - M/d/yyyy")); 

編輯

如果你想要得到它格式化字符串來看看它究竟是如何在你的問題,只是扔一個ToLower()就可以了:

Console.WriteLine(dt.ToString("h:mmtt - M/d/yyyy").ToLower()); 

此外,所有的日期和時間字符串格式化選項可以在這裏找到:
http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

+0

+1的完整答案:) – nawfal 2014-01-30 10:28:53

0

你正在尋找的格式字符串"hh:mmtt \- M/d/yyyy"

1

DateTime.Parse應該與那些ISO 8601日期字符串一起工作。

+1

不僅它們是最容易理解的,它們自然排序:日期順序= ASCII順序! :^ P – 2011-06-13 23:21:33

1

使用DateTime.Parse。

void Main() 
{ 
    var date = DateTime.Parse("2011-06-13T21:15:19Z"); 
    Console.WriteLine(date); 
} 
相關問題