如何处理意外的日期和;时间格式?

时间:2010-10-15 14:46:18

标签: c# winforms

我得到约会&从文本文件到我的C#程序中的字符串var的时间。

我需要将此字符串var转换为datetime var。

怎么做,如果我得到意想不到的日期类型&时间?

如果我不知道主机上的区域类型(当我传播我的程序时)?

提前谢谢

5 个答案:

答案 0 :(得分:2)

使用TryParse,如果日期有效,将返回布尔值。

    string dateString = "03/01/2009 10:00 AM";
    CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");
    DateTimeStyles styles DateTimeStyles.None;
    DateTime dateResult;

    if(DateTime.TryParse(dateString, culture, styles, out dateResult))
    {
        do something with dateResult
    }

TryParse docs

答案 1 :(得分:1)

小心,2/3/2010不明确它可能是mm / dd / yyyy或dd / mm / yyyy。如果你使用skyfoot的例子,你可能得到一个有效的日期,但不是正确的日期!

答案 2 :(得分:0)

TryParse 就是你想要的。

DateTime result;

if(!DateTime.TryParse(unpredictableDate, out result))
{
    throw new ArgumentException("Argument '" + unpredictableDate + "' was not a recognizable date format.");
}

答案 3 :(得分:0)

DateTime.Parse()使用运行应用的PC中的文化设置。这意味着用户可以输入他的文化的日期格式。

如果您不想这样,请在解析时指定不变文化,然后始终使用英语文化设置。

答案 4 :(得分:0)

如果您要执行特定的日期/时间格式,请尝试使用DateTime.ParseExact