2013-12-11 195 views
1

我已經嘗試了很多建議,因爲我在Stackoverflow上找到了很多建議,但沒有得到想要的結果。任何幫助將非常感激。將日期字符串轉換爲日期格式

我的日期字符串是「04-Dec-2013 14:14:02.143」,我想將其完全轉換爲DateTime格式。

這是最後一個建議,我嘗試:

String MyString;        
MyString = "04-Dec-2013 14:14:02.143"; 

DateTime MyDateTime; 
MyDateTime = new DateTime(); 

MyDateTime = DateTime.ParseExact(MyString, "dd-MMM-yyyy HH:mm:ss.fff", 
              null); 

不過,我不斷收到的令人失望的結果「2013年4月12日14時14分02秒」,而希望它是「04-癸2013 14:14:02.143「。

有什麼建議嗎?

+1

下面是網上的Microsoft網頁如何格式化日期時間:http://msdn.microsoft.com/en- us/library/8kb3ddd4(v = vs.110).aspx –

回答

5

是的,你應該閱讀約DateTime結構。 它沒有附加任何格式信息,這只是一個代表時間點的普通數字。

當您嘗試使用ToString(format)方法嘗試獲取數據的表示形式時,格式將發揮作用。

利用每一個你打電話ToString拿到格式的日期時間,你希望它是格式字符串:

var stringDateRespresentation = dateValue.ToString("dd-MMM-yyyy HH:mm:ss.fff"); 

爲了方便起見,你都應該通過普通,非格式化DateTime實例並且僅在將其呈現給用戶時使用ToString方法將其改變爲string

+0

感謝Marcin ..這清除了我對DateTime的理解。但是,似乎我仍然有一個問題,因爲最終目標不是向用戶呈現日期和時間,而是向INSERT一個具有DATETIME字段的數據庫。我正在將日期和時間讀入數組中的2個字符串變量,並希望將它們組合成一個日期時間值並插入到數據庫中。有什麼建議嗎? – user3089049

+0

忘了添加它是一個SQL Server數據庫.. – user3089049

0

正如@MarcinJuraszek所提到的,當你將它轉換回字符串時,格式會出現在圖片中。您在ParseExact中提到的格式用於解析。即如何解析MyString以創建DateTime對象。

請參閱下面的示例,以便了解ParseExact格式字符串是如何使用的。

如果您使用MyDateTime.ToString(「dd-MMM-yyyy HH:ss:mm.fff」);在ParseExact中,你會得到「12/4/2013 2:02:14 PM」而不是「2013/12/4 2:14:02」

+0

謝謝Adarsh ..很apprecaited。 – user3089049

1

@MarcinJuraszek有更好的效果(參見我換成mm和ss)回答這個問題,但它不能解決不同日期時間模式的問題,因爲SO用戶將其他問題標記爲重複。

 string MyString = "Dec-12-2013 14:14:02.143"; 
     CultureInfo ukCulture = new CultureInfo("en-GB"); 
     ukCulture.DateTimeFormat.ShortDatePattern = "MMM-dd-yyyy HH:mm:ss.fff"; 
     DateTime myDateTime = DateTime.Parse(MyString, ukCulture.DateTimeFormat); 
     string QbDate = myDateTime.ToString("dd-MMM-yyyy HH:mm:ss.fff"); 

爲了解決不同的日期,時間模式的問題覆蓋任何文化的任何日期模式

相關問題