我正在从银行存款报告中解析日期,格式如下:
Jul 9 2015
Jun 20 2015
基本上MMM dd yyyy
,但单个数字日不包含前导零。有没有一种简单的方法可以在DateTime.ParseExact()
中进行条件格式化?或者我是否必须预先处理日期字符串并添加前导零或删除额外空间?这适用于单个数字日期:
Dim dtDepositDate As DateTime
dtDepositDate = DateTime.ParseExact(strDate, "MMM d yyyy", CultureInfo.InvariantCulture)
显然,MMM dd yyyy
适用于两位数的日期,但不适用于单个数字日期,中间有额外的空格。
答案 0 :(得分:2)
对于单/双位数日部分
使用单d
个单值和双位数日值。
如果d
转换为DateTime
,则单string
会影响值。就解析而言,它适用于单位和双位数日值,例如01
,1
,11
,20
等。同样适用于M
,H
,m
,Month
的说明符,Hour
Minutes
等。
适用于多个空格
对于多个空格,请在解析时使用DateTimeStyles.AllowWhiteSpaces
。
DateTime dt = DateTime.ParseExact("Jul 9 2015", "MMM d yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AllowWhiteSpaces);
或两位数日部分:
DateTime dt = DateTime.ParseExact("Jun 20 2015", "MMM d yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.AllowWhiteSpaces);