下面的代码运行正常,只是想知道是否有更优雅的方式来实现同样的事情?以下日期应该是有效的,除此之外的任何日期都不应该:
换句话说:它应该适用于1位和2位数天/月,并且它应该有或没有时间,包括或不是秒。
var validDateTimeFormats = new[]
{
"d/MM/yyyy",
"d/MM/yyyy HH:mm",
"d/MM/yyyy HH:mm:ss",
"dd/M/yyyy",
"dd/M/yyyy HH:mm",
"dd/M/yyyy HH:mm:ss",
"d/M/yyyy",
"d/M/yyyy HH:mm",
"d/M/yyyy HH:mm:ss",
"dd/MM/yyyy",
"dd/MM/yyyy HH:mm",
"dd/MM/yyyy HH:mm:ss"
};
DateTime dateTime;
if (DateTime.TryParseExact(dateTimeStr, validDateTimeFormats,
CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
{
// My logic
}
答案 0 :(得分:0)
感谢@Steve的建议。不需要dd和MM组合。
最终代码:
var validDateTimeFormats = new[]
{
"d/M/yyyy",
"d/M/yyyy HH:mm",
"d/M/yyyy HH:mm:ss"
};
DateTime dateTime;
if (DateTime.TryParseExact(dateTimeStr, validDateTimeFormats,
CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime))
{
// My logic
}