无法分析火鸟日期

本文关键字:火鸟 日期 | 更新日期: 2023-09-27 18:23:46

我有一个firebird数据库,有些表有时间戳。例如,我的数据库返回这样的日期:"2012年1月4日下午3:08:44"或"2011年12月20日下午4:38:02"。我使用TryParseExact,代码如下:

DateTime.TryParseExact(results[i][1], "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)

我尝试了很多格式,比如"MM/dd/yyyy hh:MM:ss tt",但都不起作用。请帮帮我,否则这次我会发疯的。。。

无法分析火鸟日期

看看这篇文章

http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx

要看的关键部分是

// Parse date-only value without leading zero in month using "d" format.
// Should throw a FormatException because standard short date pattern of 
// invariant culture requires two-digit month.
dateString = "6/15/2008";
try {
   result = DateTime.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
   Console.WriteLine("{0} is not in the correct format.", dateString);
}

因此,您的数据库可能没有返回标准模式。不过,这会引发一个例外,我觉得很傻。在这个例子中,它只是说一个"仅限日期"的值,而你的值不是。

如果你有一个字符串中的日期,你可以做旧的手动修复:

public static string FixDate(string date)
{
    return (date.IndexOf('/') == 1) ? "0" + date : date;
}