2011-05-03 152 views
0

我有一個ListView,其中輸入ID和日期。日期格式爲dd/MM/yyyy。DateTimePicker以錯誤格式顯示日期

enter image description here

在的SelectedIndexChanged物業我寫了這個

If lvRecruitmentList.SelectedItems.Count > 0 Then 
    txtID.Text = lvRecruitmentList.SelectedItems(0).Text 
    dtpRecievedOn.Text = lvRecruitmentList.SelectedItems(0).SubItems(1).Text 
End If 

在dtpRecievedOn的DateTimePicker,日期顯示這樣

enter image description here

我已經設置了以下屬性通過設計師

dtpRecievedOn.Format = Custom 
dtpRecievedOn.CustomFormat = "dd/MM/yyyy" 

編輯1

注意,在ListView日期格式爲DD/MM/YYYY 並在dtpRecievedOn日期是在格式MM/DD/YYYY。

我怎樣才能使格式爲dd dtpRecievedOn顯示日期/ MM/YYYY

+1

對不起,但我不明白您的問題?什麼是錯的,你期望的是什麼? – 2011-05-03 10:53:16

+0

請參閱我的編輯 – 2011-05-03 10:56:52

回答

-1
Dim str As String() = "2/1/2000".Split("/"C) 
Dim dt As New DateTime(Convert.ToInt16(str(2)), Convert.ToInt16(str(1)), Convert.ToInt16(str(0))) 
dateTimePicker1.Value = dt.Date 
+1

'DateTime.ParseExact'可能是一個更簡單的解決方案。 – Groo 2011-05-03 12:15:20

+0

據我推測原因是 - 數據的格式爲dd/MM/yyyy。並通過做解析將交換日和月。如有任何問題,請糾正我。 – Pankaj 2011-05-03 12:28:17

+0

檢查[msergeant](http://stackoverflow.com/questions/5868354/datetimepicker-displays-date-in-wrong-format/5870711#5870711)的答案,有一個'ParseExact'的例子(實際上,'' TryParseExact',但它以同樣的方式工作)。 'DateTime.Parse'和'DateTime.ParseExact'之間有區別。 – Groo 2011-05-03 17:15:23

3

你想設置的DateTimePicker的價值,而不是文本。您可以使用DateTime.ParseExactDateTime.TryParseExact將您的文本日期更改爲DateTime。將您的第三行替換爲:

Dim selectedDate As DateTime 
Dim format As String = "dd/MM/yyyy" 
Dim txt As String = lvRecruitmentList.SelectedItems(0).SubItems(1).Text 
selectedDate = DateTime.ParseExact(txt, format, CultureInfo.InvariantCulture) 
dtpRecievedOn.Value = selectedDate 
+0

中查看我的意見。不起作用。字符串dateString,格式; dateString =「06/15/2008」; format =「d」; CultureInfo provider = CultureInfo.CurrentCulture; DateTime結果; if(DateTime.TryParseExact(dateString,「dd/MM/yyyy」,null,DateTimeStyles.None,out result)) {string} str =「」; } – Pankaj 2011-05-03 17:29:17

+0

正確,'CultureInfo.InvariantCulture'應該用來代替'null'或'CurrentCulture'。 – Groo 2011-05-03 17:40:38

+0

在tryexactparse函數中,它被設置爲null。一個變量被宣佈爲文化,但沒有被使用。 – Pankaj 2011-05-03 17:43:16