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

Datetime.TryParse can't parse yyyy/MM/dd format

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

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

这是我目前正在使用的,但它总是给我一个错误的日期。

我已经考虑使用 DateTime.TryParseExact。 但似乎无法让它发挥作用。

指定格式

考虑使用 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...
}

如果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
}