2015-12-21 37 views
-1

我有一個MVC應用程序。將LocalDatetime轉換爲時間戳

在控制器(從視圖)我開始日期爲字符串「Tue Jan 01 2008 00:00:00 GMT 0100(中歐標準時間)」。

有沒有人請告訴我如何將這個日期時間轉換爲控制器級別的普通dd-mmy-yyyy hh:mm:ss。

在此先感謝....

+1

DateTime.Parse()? – Greg

+0

@Greg DateTime.Parse(startdate)發生錯誤:字符串未被識別爲有效DateTime – Rupesh

+0

var date = DateTime.ParseExact(yourDate,「dd/mm/yyyy hh:mm」,CultureInfo.InvariantCulture); –

回答

0

您需要使用DateTime.ParseExact方法,使代碼知道輸入字符串的每個部分代表提供正確的格式字符串。

CultureInfo provider = CultureInfo.InvariantCulture; 
string format = "ddd MMM dd yyyy hh:mm tt zzz"; 
result = DateTime.ParseExact(dateString, format, provider); 

仔細檢查格式字符串against the documentation有幾個微妙和不那麼微妙的陷阱:

  • 「H」代表12小時制的小時
  • 「HH」表示12小時小時時鐘與領先的零
  • 「HH」表示24小時制零時差帶前導零
  • 「m」表示從0到59分鐘
  • 「M」代表從1月到12

所以,你可能會發現,你認爲你的格式字符串是你有例子OK,但隨後一個新的字符串會來這不會解析。你必須檢查它是否有12小時或24小時格式等等。

雖然你將不得不從字符串的第一個字符串中刪除時區名稱,因爲它不會被ParseExact識別。

+0

沒有[zzzz](https://msdn.microsoft.com/en-us/library/ms131038(v = vs.110).aspx)modificator,然後即使沒有時區名稱,此代碼也會引發異常。 –

+0

@VadimMartynov - 哎呀。錯字。另外我會錯誤地使用'dd'和'MMM'。 – ChrisF

+1

@ChrisF:仍然出現錯誤:tring未被識別爲有效的DateTime。我已經從日期字符串中刪除時區,然後它也會拋出錯誤。 – Rupesh