vb.net中的日期格式问题

发布于 2024-12-24 16:22:32 字数 776 浏览 0 评论 0原文

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

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 是一个日期变量,当我将 enddt_2 转换为字符串时,我收到错误为

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

Let我澄清一下,如果文本框中的值是 17/01/2012 ,则解析后该值将更改为 01/17/2012我的系统区域和语言是dd/MM/yyyy) 在 enddt_2 中,当我尝试转换为 dd/MM/yyyy 格式并存储到日期变量中时,出现上述错误。此错误仅出现在 12 点之后的日期。即日期变量接受 MM/dd/yyyy 格式的日期。12 点之前的日期工作正常,即对于从 1 到 12 的所有日期都没有错误。

我怎样才能让 enddt 以 dd/MM/yyyy 格式存储日期。

I am trying to parse a date from a textbox and store it in a date variable

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 is a Date variable and when i convert enddt_2 to a string i get the error as

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

Let me clarify, if a value in textbox is 17/01/2012 than after parsing the value is changed to 01/17/2012 (my systems Region and Language are dd/MM/yyyy) in enddt_2 and when i try to convert to dd/MM/yyyy format and store into a date variable i get the above error. This error comes only for the dates after 12. i.e a date variable accepts a date in MM/dd/yyyy format.The dates before 12 work fine, i.e for all dates from 1 to 12 there is no error.

How can i make enddt store the date in dd/MM/yyyy format.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

永不分离 2024-12-31 16:22:32

enddtDate 变量,您不能在其中分配字符串值,也不能更改您的区域设置甚至日期/时间格式。

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

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

The enddt is Date variable and you can't assign string value in it and do not change your regional settings or even date/time format.

Change type of enddt if you want to store string date.

 Dim enddt as String = enddt_2.ToString("dd/MM/yyyy")
寄人书 2024-12-31 16:22:32

你试过这个吗?

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

did you try this?

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)

Output:

Original Date:         17/01/2012
FormatedOriginalDate:  01/17/2012
NewDate:               01/16/2012
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文