2015-12-21 69 views
0

from string dataIni = "2015/12/21 18:28",我想解析成DateTime。我使用下面的代碼,VB Net String to DateTime

Dim dataIni = "2015/12/21 18:28" 
Dim dataIniParsed As DateTime = DateTime.ParseExact(dataIni, "yyyy/MM/dd HH:mm", System.Globalization.CultureInfo.InvariantCulture) 

但是,我得到"21/12/2015 6:28:00 PM"。如何獲得所需的格式?

+4

這段代碼是某種部分..如果你把它解析成DateTime var,你就完成了。日期沒有格式;格式是如何顯示('dtIni.ToString(「yyyy/MM/dd HH:mm」)')或存儲爲文本 – Plutonix

+0

哦確定...然後我有dataTable鏈接到我的DatagridView和列有DataeTime格式。一旦我做了反向操作,DateTime爲String,它就會按照我的意願進行格式化。謝謝! – Jaume

回答

1

一旦你已經分析的文本爲DateTime你不再有一個「格式」作爲DateTime是,僅僅表示時間,沒有任何特殊格式的日期數據類型。例如,直到您執行.ToString()Console.WriteLine(...)時,纔會將DateTime轉換爲字符串。

現在,默認情況下,.ToString()會根據您的系統設置生成字符串格式。您的產品明確生產"21/12/2015 6:28:00 PM"。在我的系統中,我使用ISO日期格式,因此我的.ToString()會爲您的日期生成"2015/12/21 18:28:00"

雖然您可以輕鬆製作自定義格式。試試這個代碼:

Dim dataIniFormatted As String = dataIniParsed.ToString("yyyy/MM/dd HH:mm") 

這產生字符串"2015/12/21 18:28"。請注意,這不再是DateTime - 它是一個字符串 - 並且dataIniParsed仍然是DateTime(沒有固有的格式)。

-1

您可以使用下面的代碼來格式化您的Date變量。您必須格式化日期以獲得所需的結果。

Dim dataIni As String = "2015/12/21 18:28" 


    Dim dataIniParsed As DateTime 
    dataIniParsed = Convert.ToDateTime(dataIni) 

    MsgBox(dataIniParsed & " - " & dataIniParsed.ToString("yyyy/MM/dd HH:mm") & " - " & dataIniParsed.GetType.ToString)