2011-12-27 96 views
0

我正在使用以下函數將字符串變量轉換爲日期。從中減去一天並將日期轉換回字符串。代碼去如下vb.net中的日期格式

Dim edate As String 
Dim expenddt As Date 

edate = txtenddt.Text 
expenddt = Date.ParseExact(edate, "dd/MM/yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo) 
expenddt = expenddt.AddDays(-1) 

Dim asd As String = expenddt.ToString 

如果edate有值29/12/2011expenddt價值得到改變,以不同的格式和expenddt值來12/29/2011和後來減去一天後expenddt12/28/2011和比我將其轉換回一個字符串我在asd「2012年12月28日12:00:00 AM」

獲得的價值我改變了日期格式到d/M/yyyy控制面板中的區域和語言選項,但我仍然得到不同的格式expenddt

任何人都可以解釋爲什麼發生這種情況?我怎樣才能保持29/12/2011和 一天後減去在DD/MM/YYYY如日期的格式應該保持28/12/2011,而不是12/29/2011

+1

我無法解釋爲什麼(它應該使用通過控制面板設置的格式),但爲什麼不在調用ToString時指定格式? – andygjp 2011-12-27 12:13:15

+0

@andygjp。我從來沒有想過,謝謝你。其實即時通訊新的VB,我知道我們如何在C#中做到這一點。請你告訴我如何指定一種格式?是.ToString(「dd/mm/yyyy」)? – Ishan 2011-12-27 12:21:46

+0

@andygjp這實際上解決了我的問題。 – Ishan 2011-12-27 12:35:49

回答

2

使用Date.ToString()到日期轉換爲字符串dd/MM/yyyy格式。

Dim asd As String = expenddt.ToString("dd/MM/yyyy") 
0

剛剛嘗試這一點:

Dim dateString As String = "Mon 16 Jun 8:30 AM 2008" 
Dim format As String = "ddd dd MMM h:mm tt yyyy" 
Dim dateTime__1 As DateTime = DateTime.ParseExact(dateString, format, CultureInfo.InvariantCulture) 

但願這很有幫助....