0

我正在尝试使用下面的代码将日期字符串转换为“dd/MM/yyyy”格式

m_dEDate = Format(CDate(strExpiry), "dd/MM/yyyy")

但是系统出现异常错误-“参数不正确”。如果区域短日期为“dd-MMM-yy”,则没有异常错误。

如果不手动设置区域,我们如何通过编码进行转换?

我们应该使用System.Globalization吗?如果是这样,请分享我的样本。

4

2 回答 2

1

利用Date.ParseExact

  Dim dateString As String = "06/15/2008"
  Dim format As String = "MM/dd/yyyy"
  Dim provider As CultureInfo = CultureInfo.InvariantCulture
  Dim _NewDate As Date = Date.ParseExact(dateString, format, provider)
于 2012-11-15T05:37:09.300 回答
0

看起来您正在尝试更改日期表示的格式,但您还没有告诉我们您要转换格式是什么。John 的代码正确地显示了如何解析一个值——但看起来这就是你想要的目标值。假设您的输入类似于“2012-11-15”,即 yyyy-MM-dd。然后你会想要:

Dim inputText = "2012-11-15"
Dim inputFormat = "yyyy-MM-dd"
Dim outputFormat = "MM/dd/yyyy"
Dim provider = CultureInfo.InvariantCulture
Dim parsedDate = Date.ParseExact(inputText, inputFormat, provider)
Dim outputDate = parsedDate.ToString(outputFormat, provider)

请注意,此处使用不变的文化将您完全与文化敏感性隔离开来。这实际上是您想要的,还是您可能想根据用户文化来对待您的输入,而不是输出?

于 2012-11-15T07:09:37.910 回答