我想使用的代码日期字符串为“DD/MM/YYYY”格式转换下面日期格式
m_dEDate = Format(CDate(strExpiry), "dd/MM/yyyy")
但系统得到了异常错误 - “参数不正确”。如果区域短日期为“dd-MMM-yy”,则不存在异常错误。
无需手动设置区域,我们如何能够管理由编码转换?
我们应该用System.Globalization
?如果是这样,请与我分享样品。
我想使用的代码日期字符串为“DD/MM/YYYY”格式转换下面日期格式
m_dEDate = Format(CDate(strExpiry), "dd/MM/yyyy")
但系统得到了异常错误 - “参数不正确”。如果区域短日期为“dd-MMM-yy”,则不存在异常错误。
无需手动设置区域,我们如何能够管理由编码转换?
我们应该用System.Globalization
?如果是这样,请与我分享样品。
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)
它看起来像你想改变日期表示的格式,但你还没有告诉我们什么格式你从转换。 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)
注意的是,使用固定区域性这里完全隔离您从文化的敏感性。是,其实你想要什么,或者你可能希望根据用户的文化来对待你输入,但不输出?
谢谢你,约翰。它会生成“FormatException”错误。 – soclose
哦,我忘了,应该是'MM/DD/yyyy' –
鉴于原代码,它看起来像OP试图*格式*在'MM/DD/yyyy'日,*后*从它解析一些其他格式(我们不知道)。无论是今天早上到目前为止还是缺乏咖啡都在踢。 –