vb.net中的日期格式问题

时间:2012-01-03 05:41:32

标签: asp.net vb.net parsing date date-format

我正在尝试从文本框中解析日期并将其存储在日期变量

Dim enddt_2 As Date = Date.ParseExact(txtenddt.Text, "dd/MM/yyyy", System.Globalization.DateTimeFormatInfo.InvariantInfo)  'txtenddt.Text
expenddt_1 = enddt_2.AddDays(-1)
enddt = enddt_2.ToString("dd/MM/yyyy")

enddt是一个Date变量,当我将enddt_2转换为字符串时,我得到错误

Conversion from string "17/01/2012" to type 'Date' is not valid.

让我澄清一下,如果文本框中的值 17/01/2012 ,则解析后的值会更改为 01/17/2012 my系统区域和语言是{/ 1}}中的dd / MM / yyyy )当我尝试转换为 dd / MM / yyyy 格式并存储到日期变量时,我得到了以上错误。此错误仅发生在12之后的日期。即日期变量接受MM / dd / yyyy格式的日期.12之前的日期工作正常,即从1到12的所有日期都没有错误。

如何让enddt_2以dd / MM / yyyy格式存储日期。

2 个答案:

答案 0 :(得分:1)

enddtDate变量,您无法在其中指定字符串值,也不会更改区域设置甚至日期/时间格式。

如果要存储字符串日期,请更改enddt的类型。

 Dim enddt as String = enddt_2.ToString("dd/MM/yyyy")

答案 1 :(得分:0)

你试过这个吗?

Dim enddt_2 As Date = DateTime.ParseExact("17/01/2012", "dd/MM/yyyy", _
                      System.Globalization.CultureInfo.InvariantCulture)
Dim newD As Date = enddt_2.AddDays(-1)

Dim xStr As String = "Original Date: " & enddt_2.ToString("dd/MM/yyyy") & vbCrLf
xStr &= "FormatedOriginalDate: " & enddt_2.ToString("MM/dd/yyyy") & vbCrLf
xStr &= "NewDate: " & newD.ToString("MM/dd/yyyy")
Console.Writeline(xStr)

输出:

Original Date:         17/01/2012
FormatedOriginalDate:  01/17/2012
NewDate:               01/16/2012