我目前正在尝试将格式为yyyy/MM/dd
的日期转换为。
检查是否给出了有效日期。
if(!DateTime.TryParse(textBoxDatumVanStorting.Text, out Test2))
我现在正在使用它,但它总是给我一个错误的约会。
我已经注意使用DateTime.TryParseExact
。
但似乎不能让这个工作。
答案 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
}