我使用以下函数将String变量转换为Date。从中减去一天并将日期转换回String。代码如下
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/2011 ,则expenddt
中的值会更改为其他格式,而expenddt
中的值会变为 12/29/2011 以及之后减去一天expenddt
12/28/2011 ,而且当我将其转换回字符串时,我获得了值在asd
中“12/28/2012 12:00:00 AM”
我已将系统上的日期格式更改为控制面板中的区域和语言选项中的d/M/yyyy
,但我仍然在expenddt
任何人都可以解释为什么会这样吗?如何保持日期的格式为dd / mm / yyyy,例如29/12/2011及之后 减去一天它应该 28/12/2011 而不是 12/29/2011
答案 0 :(得分:2)
使用Date.ToString()
将日期转换为dd/MM/yyyy
格式的字符串。
Dim asd As String = expenddt.ToString("dd/MM/yyyy")
答案 1 :(得分: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)
希望这可能有帮助......