Datetime.TryParse无法解析yyyy / MM / dd格式

时间:2016-06-02 17:25:58

标签: c# datetime tryparse

我目前正在尝试将格式为yyyy/MM/dd的日期转换为。 检查是否给出了有效日期。

if(!DateTime.TryParse(textBoxDatumVanStorting.Text, out Test2))

我现在正在使用它,但它总是给我一个错误的约会。

我已经注意使用DateTime.TryParseExact。 但似乎不能让这个工作。

2 个答案:

答案 0 :(得分:7)

指定格式

考虑使用DateTime.TryParseExact()方法,它允许您明确定义字符串所在的格式:

// This will attempt to parse your date in exactly the format provided
if(!DateTime.TryParseExact(textBoxDatumVanStorting.Text,"yyyy/MM/dd", null, DateTimeStyles.None, out Date2))
{
    // Your date is not valid, consider doing something
}

文化问题

在上面的示例中,传入的第三个参数表示您希望用于解析日期的特定区域性/格式。使用null将默认使用当前文化,但如果您需要明确指定,请使用不变文化在此处执行此操作:

Date output;
if(!DateTime.TryParseExact(input,"yyyy/MM/dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out output))  
{
     // Uh oh again...
}

答案 1 :(得分:0)

如果DateTime.TryParse 无法解析您的字符串,则表示此yyyy/MM/dd格式不是CurrentCulture的标准日期格式。

您可以使用DateTime.TryParseExact自定义格式,如;

DateTime Test2;
if (DateTime.TryParseExact(textBoxDatumVanStorting.Text, "yyyy/MM/dd", 
                           CultureInfo.InvariantCulture, 
                           DateTimeStyles.None, out Test2))
{
    // Successfull parse
}