将字符串转换为.net中的日期

时间:2020-03-06 14:37:18  来源:igfitidea点击:

我正在从cand的平面文件中读取文本,需要测试某些值是否为日期。它们可以采用YYYYMMDD格式或者MM / DD / YY格式。 .Net中最简单的方法是什么?

解决方案

DateTime.TryParse方法

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文档中的更多信息。

我们也可以执行Convert.ToDateTime

不确定两者的优势

如果使用TryParse失败,则不会引发异常。另外,TryParse将返回True / False,表示转换成功。

问候...

我们也可以尝试使用TryParseExact设置确切格式。
方法,这里的文档:http://msdn.microsoft.com/zh-cn/library/ms131044.aspx

例如

DateTime outDt;
bool blnYYYMMDD = 
     DateTime.TryParseExact(yourString,"yyyyMMdd"
                            ,CultureInfo.CurrentCulture,DateTimeStyles.None
                            , out outDt);

希望我能对我们有所帮助。

我们可以使用TryParse方法来同时检查有效性和解析。

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
}