我在c#中从一个平面文件中读取文本,需要测试某些值是否是日期。它们可以是YYYYMMDD格式或MM/DD/YY格式。在.Net中最简单的方法是什么?
string[] formats = {"yyyyMMdd", "MM/dd/yy"};
var Result = DateTime.ParseExact(input, formats, CultureInfo.CurrentCulture, DateTimeStyles.None);
或者DateTime result;
string[] formats = {"yyyyMMdd", "MM/dd/yy"};
DateTime.TryParseExact(input, formats, CultureInfo.CurrentCulture, DateTimeStyles.None, out result);
有关 ParseExact 和 TryParseExact 的更多信息,请参阅 MSDN 文档。
DateTime.TryParse method
您可以尝试使用TryParseExact方法来设置精确格式。
这里是相关文档:http://msdn.microsoft.com/en-us/library/ms131044.aspx
例如:
DateTime outDt;
bool blnYYYMMDD =
DateTime.TryParseExact(yourString,"yyyyMMdd"
,CultureInfo.CurrentCulture,DateTimeStyles.None
, out outDt);
I hope i help you.
你也可以使用 Convert.ToDateTime
不确定两者之间的优劣
使用TryParse在转换失败时不会抛出异常。此外,TryParse将返回True/False,指示转换的成功与否。
敬礼...
DateTime output;
string input = "09/23/2008";
if (DateTime.TryParseExact(input,"MM/dd/yy", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out output) || DateTime.TryParseExact(input,"yyyyMMdd", DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out output))
{
//handle valid date
}
else
{
//handle invalid date
}