有没有办法,一种好方法来测试我想要在DateTime
中转换的字符串是dd/MM/yyyy
还是MM/dd/yyyy
?
谢谢,
答案 0 :(得分:10)
不,因为它可能都是。是11月10日11月10日还是10月11日?
是的,在一些的情况下(如果一个数字大于12),它将是明确的 - 但我认为最好强制使用一种格式或另一种格式。如果您只是以任何方式处理可以以MM / dd / yyyy完成的任何事情,并且如果失败(或反过来)继续前进到dd / MM / yyyy那么你会得到一些用户非常惊讶。
如果这是网络应用程序或类似内容的一部分,我会尝试使用月份名称而不是数字,尽可能完全明确。
答案 1 :(得分:2)
不,但你可以在解析时尝试两种方法:
DateTime result;
if (DateTime.TryParseExact(
"05/10/2010",
new[] { "MM/dd/yyyy", "dd/MM/yyyy" },
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out result)
)
{
// successfully parsed date => use the result variable
}
答案 2 :(得分:1)
此问题将存在,直到所有人接受并使用ISO方式。我是一名瑞典程序员,与美国和英国客户合作很多,很难让这些客户使用标准化的日期格式。
ISO 8601 - 使用它!
答案 3 :(得分:0)
看看DateTime.ParseExact and DateTime.TryParseExact。
string date1 = "24/12/2010";
CultureInfo provider = CultureInfo.InvariantCulture;
DateTime dt1 = new DateTime(1, 1, 1);
bool dt1Valid = false;
try
{
dt1 = DateTime.ParseExact(date1, "dd/MM/yyyy", provider);
dt1Valid = true;
}
catch
{
dt1Valid = false;
}