2016-04-05 261 views
-1

我有一個字符串,其格式爲日期。 「24-11-2015」或「dd-MM-yyyy」。我需要將它轉換爲這種格式的日期。 「2015-11-24」或「yyyy-MM-dd」。 我已經嘗試了幾種方法,它們都依賴於我的系統格式來實現此功能。如果我用英文時間格式在計算機上運行我的程序,則可以運行。使用格式將字符串轉換爲日期(VB.net)

Date.ParseExact("24-11-2015", "dd-MM-yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo) 

但是,如果我在運行丹麥語格式的計算機上運行它,我會因爲沒有第24個月而收到錯誤。我如何使日期格式獨立於我的系統時間格式。

+0

DateTime變量沒有格式。它們是以字符串的形式給出它們的'格式'。從你的問題中不清楚你是否有一個表示日期的字符串,並且你想將它解析成DateTime變量,或者如果你有一個DateTime變量,並且希望以某種方式顯示 – Steve

+0

如果這是一個桌面應用程序,TryParse可用於測試當前文化所使用的所有可能的格式......並且一些文化已超過100個。 – Plutonix

+0

如果用戶可以直接輸入完整字符串,則遇到問題。系統無法可靠地分辨出m-d-yyyy和d-m-yyyy之間的差別。您需要使用單獨的字段或日期選擇器。 – rheitzman

回答

1

解決方案:

Dim dateTime As String = "24-11-2015" 
Dim dt As DateTime = Convert.ToDateTime(dateTime) 
Console.WriteLine("{0}-{1}-{2}", dt.Year, dt.Month.ToString("D2"), dt.Day.ToString("D2")) 

解決方案2:

Dim dateTime As String = "24-11-2015" 
Dim dt As DateTime = Convert.ToDateTime(dateTime) 
Dim format As String = "yyyy-MM-dd" 
Dim str As String = dt.ToString(format) 
Console.WriteLine(str) 

您也可以嘗試Formatting Date and Time for a Specific Culture

相關問題