条件DateTime.ParseExact格式

时间:2015-07-10 19:07:49

标签: vb.net datetime

我正在从银行存款报告中解析日期,格式如下:

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适用于两位数的日期,但不适用于单个数字日期,中间有额外的空格。

1 个答案:

答案 0 :(得分:2)

对于单/双位数日部分

使用单d个单值和双位数日值。

如果d转换为DateTime,则单string会影响值。就解析而言,它适用于单位和双位数日值,例如0111120等。同样适用于MHmMonth的说明符,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);