我在数据库中有如下价值:
04/14
01-15
02/15
我需要将这些值解析为数据时间格式。即使从04/14成为01/04/2014,也没关系。
我尝试过如下操作无法正常工作。
var strDate = "04/14";
var format = "d";
var provider = CultureInfo.InvariantCulture;
var result = DateTime.ParseExact(strDate, format, provider);
答案 0 :(得分:5)
显然,您的字符串和格式不匹配。
使用DateTime.ParseExact
时,您的字符串和格式应与完全匹配。我强烈怀疑你尝试在你的情况下使用"d" standard date and time format这是错误的。此方法将此格式视为一天的单个数字,这不足以解析您的字符串。
您可以使用DateTime.TryParseExact
overload将格式作为字符串数组MM-yy
或MM/yy
,其格式为/
为DateSeparator
。
DateTime dt;
var formats = new[] {"MM/yy", "MM-yy"};
if(DateTime.TryParseExact(strDate, formats, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt);
}
由于您的字符串只有月份和年份部分,因此它的一天部分将是该月的第一天,而时间部分将默认为午夜。