解析时使DateTime的前导零可选

时间:2016-08-23 16:33:54

标签: c# datetime

我正在将字符串转换为DateTime并让字符串像这样进入:

string dateTimeBeforeDayTen = '2/05/2016';
string dateTimeBeforeAfterTen = '12/05/2016';

现在,如果我正在解析dateTimeBeforeAfterTen,我知道我可以使用:

DateTime myDateTime;
DateTime.TryParseExact(dateTimeBeforeAfterTen, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime);

但如果我想解析其中任何一个,我该怎么办?我知道我能做到:

DateTime myDateTime;
if(!DateTime.TryParseExact(dateTimeBeforeAfterTen, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime));
    DateTime.TryParseExact(dateTimeBeforeAfterTen, "d/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime);

但有更好的方法吗?我将DateTime格式存储在数据库中,并希望将其保存为单个字符串。

1 个答案:

答案 0 :(得分:2)

单个" d"将工作一到两天。所以只需使用" d / MM / yyyy"。

Format string

  

" d"

     

该月的某一天,从1到31。

     

2009-06-01T13:45:30 - > 1

     

2009-06-15T13:45:30 - > 15

这有效:

string dateTimeBeforeDayTen = "2/05/2016";
string dateTimeBeforeAfterTen = "12/05/2016";

DateTime myDateTime, myDateTime2;

DateTime.TryParseExact(dateTimeBeforeDayTen, "d/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime);
DateTime.TryParseExact(dateTimeBeforeAfterTen, "d/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out myDateTime2);