从Oracle转换为datetime
我知道有很多类似的问题,但我找不到我想要的东西。
这是我的oracle日期:
string testdate= "2014-01-07 15:00:00.0000000";
以下是我尝试转换为datetime的方法:
DateTime.ParseExact(testdate, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture)
这会引发格式exception。 有任何想法吗?
我的快速测试也会抛出字符串无效的日期时间exception。 快速测试:
Console.WriteLine(DateTime.ParseExact(testdate, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture).ToShortDateString());
我首先尝试避免首先将其作为字符串。 确保在Oracle中使用适当的数据类型,并且应该能够在相应的DataReader
(或者您正在使用的任何内容)上调用GetDateTime
。
如果你必须将其解析为文本,那么你需要指定一个与值匹配的格式 – 所以使用7 f
s而不是3,假设你的值在末尾有“.0000000”。
DateTime.ParseExact(testdate, "yyyy-MM-dd HH:mm:ss.fffffff", CultureInfo.InvariantCulture)
但同样,我强烈建议你避免将价值作为文本来处理。
为什么要使用ParseExact
? Reqular Parse
似乎有效。
var dt = DateTime.Parse("2014-01-07 15:00:00.0000000", CultureInfo.InvariantCulture); // Prints out 2014-01-07T15:00:00.0000000 Console.WriteLine(dt.ToString("o"));