我目前正在尝试将一个以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...
}
using System.Globalization
,这样就不需要输入那么多代码了。 - Chris DunawayDateTime.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
}
textBoxDatumVanStorting.Text
和CurrentCulture
分别是什么? - Soner Gönül