我從api中提取數據,我得到這個值"Fri Aug 16 21:06:52 +0000 2013"
我想知道我將如何能夠更改此字符串值鍵入日期時間轉換字符串唯一的日期輸出類型日期時間在c#
回答
解析字符串日期時間:
http://msdn.microsoft.com/en-us/library/ch92fbc1.aspx DateTime.TryParse()返回true或false成功/失敗。 http://msdn.microsoft.com/en-us/library/1k1skd40.aspx DateTime.Parse()在失敗時引發異常。
您可以使用DateTime.ParseExact
DateTime.ParseExact("Aug 16 21:06:52 +0000 2013", "MMM dd HH:mm:ss +ffff yyyy",
System.Globalization.CultureInfo.InvariantCulture);
'「ffff」'爲小數秒,但在他的字符串中的時區給出。所以在技術上''「ffff」'是錯誤的(儘管它有效)。 –
有幾種方法......如果解析失敗
DateTime dt;
if (DateTime.TryParse("Aug 16 21:06:52 +0000 2013", out dt))
{
//parsing was successfull
}
這不會拋出異常。
再有就是DateTime.Parse:
DateTime dt = DateTime.Parse("Aug 16 21:06:52 +0000 2013");
不像TryParse
,如果解析失敗,這將引發異常。
而且也有,Convert.ToDateTime:
DateTime dt = Convert.ToDateTime("Aug 16 21:06:52 +0000 2013", culture);
如果轉換失敗這也引發錯誤。
您應該閱讀DateTime custom formats。
這應該解決您的問題thougf它
DateTime result = DateTime.ParseExact("Aug 16 21:06:52 +0000 2013", "MMM dd HH:mm:ss zzz yyyy", CultureInfo.InvariantCulture);
,或者更恰當地做到這一點,避免例外。像這樣做
//zzz is Hours and minutes offset from UTC
string[] formats = { "MMM dd HH:mm:ss zzz yyyy" };
DateTime result;
string date = "Aug 16 21:06:52 +0000 2013";
if (DateTime.TryParseExact(date, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
{
// i prefer this method though
}
感謝那 – user2674590
_「ffff」是用於小數秒,但在他的字符串中給出時區。所以從技術上講,「ffff」是錯誤的(儘管它有效)_(從Jeppe對[Adil的回答](http://stackoverflow.com/a/18311573/284240)的評論中複製而來)。 –
同意並更新。 – Ehsan
使用DateTime.ParseExact
或者(如果輸入的可能是無效的)DateTime.TryParseExact
:
string input = "Aug 16 21:06:52 +0000 2013";
DateTime output;
if (DateTime.TryParseExact(input, "MMM dd HH:mm:ss zzzz yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out output))
{
// date was parsable, here is it:
Console.WriteLine(output.ToLongDateString());
}
Custom Date and Time Format Strings,尤其是"zzz" Custom Format Specifier
@xanatos:完成:) –
你更新你的問題後編輯。
如果你想讓它轉換爲本地時區,使用方法:
var dateTime = DateTime.ParseExact("Fri Aug 16 21:06:52 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture);
否則,使用:
var dateTime = DateTime.ParseExact("Fri Aug 16 21:06:52 +0000 2013",
"ddd MMM dd HH:mm:ss zzz yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AdjustToUniversal);
如果+0000
總是這樣在輸入,並要完全忽視這一點,請使用:
var dateTime = DateTime.ParseExact("Fri Aug 16 21:06:52 +0000 2013",
"ddd MMM dd HH:mm:ss +0000 yyyy",
CultureInfo.InvariantCulture);
- 1. C#字符串日期時間轉換
- 2. 轉換c#日期時間輸入[類型=日期]
- 3. 將C#日期時間轉換爲XML日期時間類型
- 4. javascript日期/時間字符串轉換爲SQL日期時間
- 5. 將字符串日期時間轉換爲Ruby日期時間
- 6. 轉換日期/時間字符串值到.NET日期時間
- 7. 將日期時間字符串轉換爲日期時間
- 8. 將2種類型的日期字符串轉換爲日期時間對象
- 9. 在java中轉換字符串時間日期類型
- 10. C#將字符串轉換爲無日期時間的日期時間
- 11. 轉換日期時間字符串
- 12. 字符串日期時間轉換javascript
- 13. 轉換字符串到日期時間
- 14. 轉換GMT日期時間字符串
- 15. 日期時間Tableau計算 - 將字符串轉換爲日期類型
- 16. 轉換Python字符串日期MySQL的日期時間
- 17. 將日期字符串轉換爲SSIS中的日期時間
- 18. 將日期時間轉換爲代表日期的字符串
- 19. Python的轉換日期字符串到日期時間
- 20. 如何日期字符串轉換爲日期數據類型
- 21. 如何將一個MySQL的日期時間字符串轉換爲C#的日期時間字符串?
- 22. 如何將日期和時間從字符轉換爲日期時間類型
- 23. 將UTC日期轉換爲日期時間字符串Javascript
- 24. 轉換日期字符串,時間長日期
- 25. 轉換ISO 8601日期字符串到.NET日期時間
- 26. 轉換日期字符串到日期時間兼容到PostgreSQL
- 27. 轉換日期字符串日期時間格式vb.net
- 28. 轉換日期時間字符串到日期
- 29. 轉換日期字符串到日期時間
- 30. 轉換日期字符串到日期時間
它被稱爲解析,嘗試使用Google搜索它。 「DateTime.Parse」或「TryParse」或「TryParseExact」可能是有用的。 – wudzik
有很多關於它的文章。 請參閱http://stackoverflow.com/questions/16978359/c-sharp-to-convert-string-to-datetime/16978561#16978561 – reNNN