2016-11-25 384 views
0

我在將系統日期時間格式轉換爲特定格式時遇到問題。將系統日期時間轉換爲特定格式。例如:(yyyyMMdd hh:MM:ss)

例如:DateTime dt=new DateTime(); //根據我的系統格式,它將返回11/15/2016 10:23 AM。

但我必須轉換成這種格式 - 20161115(yyyyMMdd hh:MM:ss)。我可以用`DateTime.Now.ToString(「yyyyMMdd hh:MM:ss」)來實現這個功能嗎? 。

但其返回字符串格式。我想在DateTime格式。

+2

當不轉換爲字符串時,DateTime將永遠不會有格式。在不轉換爲字符串時,double或int是否具有格式? [MSDN - 自定義日期和時間格式字符串](https://msdn.microsoft.com/en-us/library/8kb3ddd4(v = vs.110).aspx) – MarkusEgle

+0

'DateTime'對象的屬性中包含值,你希望它以特定的格式表示數據,所以你使用'ToString()'但是這並不改變對象的內容。您只是以diff格式顯示它。 –

回答

1

在這裏你去:

string str = DateTime.Now.ToString("yyyyMMdd hh:MM:ss"); 

DateTime dt = DateTime.ParseExact(str, "yyyyMMdd hh:MM:ss", CultureInfo.InvariantCulture); 
+0

您可以使用它將字符串讀回日期時間格式。謝謝 –

5

DateTime爲對象沒有格式。它包含作爲內部數值範圍的信息,並且僅通過IDE或代碼格式化爲字符串表示形式。你不要改變它的格式。

只有當你想輸出它在某處設置格式,你會得到一個字符串。

2

您的DateTime是一個對象。這意味着這些值被保存到下面顯示的屬性中。

如果您希望DateTime以不同於默認格式的格式顯示,那麼您可以使用ToString(yourFormat)方法對其進行格式化。 這不會改變數據或屬性的位置,如果這就是你所期待的。 (物業本身的期限位置本身毫無意義

它只是表示。就像你如何將數據庫中的數據視爲表格一樣,但是在用戶界面中將其顯示爲花哨的HTML。

對象內部將數據保存到每個屬性中並提供默認表示DateTime.Now.ToString(),並且只有當您不需要默認DateTime格式時,纔可以靈活地將其格式化爲您的選擇。

所以,如果你的想法是用這個string日期時間任何代碼的邏輯,那麼你將只是解析成DateTime對象給它的格式字符串是在像

DateTime date = DateTime.ParseExact(strDate, "yyyyMMdd hh:MM:ss", CultureInfo.InvariantCulture) 

現在您的字符串數據解析爲對象,就可以作爲

date.Date取值,date.Millisecond

enter image description here

0

DateTime是一個具有各種屬性和方法相關的類。你不能真正以不同的「格式」返回一個DatTime對象 - 它只是一個時間點的表示。但是,您可以將DateTime對象表示爲以特定方式構建的結果對象。所以,你在做什麼是正確的:

DateTime.Now.ToString("yyyyMMdd hh:MM:ss") 

這樣當您需要在readabel格式來顯示日期時間,如在日誌文件中或在UI。如果你需要傳遞一個DateTime作爲參數,傳遞整個對象,而不僅僅是一個字符串表示。

0

DateTime.ParseExact(dateString,「yyyyMMdd hh:MM:ss」,null);

相關問題