我尝试使用TryParseExact验证DateTime对象。任务是检查DateTime是否包含时间,而不仅仅是日期。到目前为止,我拥有的代码:
public bool validateDateAndTime(DateTime checkDateFormat)
{
checkDateFormat = new DateTime(2019, 02, 02, 23, 33, 21);
DateTime checkOutDate;
if(DateTime.TryParseExact(checkDateFormat.ToString(), "yyyy-MM-dd hh:mm:ss", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces, out checkOutDate))
{
return true;
}
else
{
Console.WriteLine(checkDateFormat.ToString() + " " + checkOutDate);
return false;
}
}
这对我来说毫无意义,因为我在if之前设置了"yyyy, mm, dd, hh, mm, ss"
。
打印的控制台行:
2019-02-02 23:33:21 0001-01-01 00:00:00
答案 0 :(得分:-1)
您的ToString()输出与yyyy-MM-dd hh:mm:ss:的确切格式不匹配
public bool validateDateAndTime(DateTime checkDateFormat)
{
checkDateFormat = new DateTime(2019, 02, 02, 23, 33, 21);
if (DateTime.TryParseExact(checkDateFormat.ToString("yyyy-MM-dd HH:mm:ss"), "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.AllowWhiteSpaces, out DateTime checkOutDate))
{
Console.WriteLine($"Validated: {checkOutDate}");
return true;
}
else
{
Console.WriteLine(checkDateFormat.ToString() + " " + checkOutDate);
return false;
}
}
答案 1 :(得分:-1)
您实际上是在转换DateTime.ToString(),默认情况下它是通用格式,并且处于美国文化下。
如果要以其他格式显示时间,请指定其格式。
尝试一下
my_new_column