2011-04-28 50 views
7

我嘗試解析外部系統日期時間戳如下:的TryParse特殊日期格式

DateTime expiration; 
DateTime.TryParse("2011-04-28T14:00:00", out expiration); 

不幸的是它不被認可。我怎樣才能解析這個成功?

sl3dg3

+0

通過指定所需的格式來嘗試DateTime.TryParseExact() – 2011-04-28 10:13:30

回答

11

指定要確切格式DateTime.TryParseExact

DateTime expiration; 

string text = "2011-04-28T14:00:00"; 
bool success = DateTime.TryParseExact(text, 
             "yyyy-MM-ddTHH:mm:ss", 
             CultureInfo.InvariantCulture, 
             DateTimeStyles.None, 
             out expiration); 
+0

IMO最乾淨的解決方案,thx! – sl3dg3 2011-04-28 10:26:55

+2

我只使用'TryParseExact'。如果計算機可能打開(喘氣)美國設置,則不能真正相信「TryParse」。 – configurator 2011-05-01 14:41:12

+0

+1我知道這是舊的,但仍然有用 - 謝謝! – twoleggedhorse 2013-03-18 15:17:24

2

試試這個

DateTime expiration; 
DateTime.TryParse("2011-04-28 14:00:00", out expiration); 

不使用 「T」。

+0

更改輸入值(在其他地方提供)並不像改變解析方式以匹配預期格式IMO那樣好。 – 2011-04-28 10:16:01

1

您需要在字符串參數中附加「00000Z」。

DateTime.TryParse("2011-04-28T14:00:0000000Z", out expiration); 
1

用戶DateTime.TryParseExact功能如下:

DateTime dateValue; 

if (DateTime.TryParseExact(dateString, "yyyy-MM-ddTHH:mm:ss", 
           new CultureInfo("en-US"), 
           DateTimeStyles.None, 
           out dateValue)) 
{ 
    // Do Something .. 
} 

閱讀DateTime