在我的wpf应用程序中,我编写了以下代码来比较所选的日期格式。
C#代码:
class Harvest_Base
{
public static DateTime storeTime(String date)
{
DateTime returnValue = new DateTime();
if (date == "")
return returnValue;
//Time or Date Component Does not Exist
string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", "yyyy-mm-dd",
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", "M/d/yyyy h:mm", "M/d/yyyy h:mm",
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
"h:mm tt","hh:mm tt","HH:mm:ss","H:mm","HH:mm","h:mmtt"};
DateTime result;
if (DateTime.TryParseExact(date, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
returnValue = result;
else
returnValue = DateTime.Today;
return returnValue;
}
这里的问题是,当我设置断点并检查'date'对象时,正确显示mw选择日期。日期格式为“yyyy-mm-dd”。如果我选择“2013-08-08”,则returnValue显示日期为“08-01-2013 00:08:00”。它完全采用不同的格式。如果我们忽略格式,那么月份是错误的。我该怎么解决这个问题?
答案 0 :(得分:2)
如果我选择“2013-08-08”,则returnValue显示日期为“08-01-2013 00:08:00”
因为 mm 是分钟,其中 MM 是几个月,因此它将其转换为分钟。
这很好用
string[] formats= {"yyyy-MM-dd"};
if (DateTime.TryParseExact(date, formats, System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None, out result))
returnValue = result;
else
returnValue = DateTime.Today;