.net 将字符串转换为datetime并发送到Oracle DB时出错
我无法将字符串“11/07/2014 12:00:00 am”转换为日期时间。我试过很多方法,但有些地方出了问题,这里有两种方法,我用的 第一路.net 将字符串转换为datetime并发送到Oracle DB时出错,.net,vb.net,datetime,visual-studio-2012,oracle11g,.net,Vb.net,Datetime,Visual Studio 2012,Oracle11g,我无法将字符串“11/07/2014 12:00:00 am”转换为日期时间。我试过很多方法,但有些地方出了问题,这里有两种方法,我用的 第一路 Dim dateTime As DateTime = Convert.ToDateTime("11/07/2014 12:00:00 AM") 它正在返回一个值“#11/07/2014#” 第二条路 当我尝试使用下面的方法进行解析时,它返回一个错误“String未被识别为有效的DateTime” 有谁能给我推荐一个有效的方法吗。我必须将此日期时间发送
Dim dateTime As DateTime = Convert.ToDateTime("11/07/2014 12:00:00 AM")
它正在返回一个值“#11/07/2014#”
第二条路
当我尝试使用下面的方法进行解析时,它返回一个错误“String未被识别为有效的DateTime”
有谁能给我推荐一个有效的方法吗。我必须将此日期时间发送到oracle DB以获取数据请尝试:
var datetime = DateTime.ParseExact("11/07/2014 12:00:00 AM", "dd/MM/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);
从今天开始,我假设您的字符串代表11月7日 如果字符串格式是用户的标准日期和时间格式模式,则成功解析字符串。如果解析成功,这意味着
MM/dd/yyyy hh:MM:ss tt
是您的CurrentCulture
的标准日期和时间格式模式。我不明白这些#
是从哪里来的。它们与解析操作无关
你的第二种方式是因为来自
将日期和时间的指定字符串表示形式转换为其
使用指定格式和特定区域性的DateTime等效项
格式信息字符串表示形式的格式必须匹配
指定的格式完全相同。
在您的示例中,它们不匹配。您需要改用MM/dd/yyyy hh:MM:ss tt
格式
Dim dt As DateTime = DateTime.ParseExact("11/07/2014 12:00:00 AM",
"MM/dd/yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture)
在第一种情况下,它看起来可能已经起作用了(尽管还不清楚您是在解析11月7日还是7月11日,这真的没有帮助),而在第二种情况下,您当前正在解析一个空字符串,根据您的输入数据,它的格式看起来与应该的格式完全不同。你认为那会怎样?您应该阅读.NET中的格式说明符…无论出于何种原因,如果时间是00:00:00或12:00:00 VS未将其包含在值显示中(在字符串中添加一秒钟,它将显示在VS中);否则,第一个可能是正确的。使用Console.WriteLine,将显示时间部分。这与
C#
有什么关系?很抱歉输入错误,我有点忽略了日期字符串。我在第二部分加上了日期。它弹出带有日期字符串的异常。在第一种提到的方式中。它以“#”开头和结尾返回。它总是这样,还是我做错了什么?它返回相同的错误“字符串未被识别为有效的日期时间”。我不知道发生了什么wrong@gnsanvesh看起来#
只是日期时间的表示形式。使用DateTime对象时不应该看到它。
Dim dt As DateTime = DateTime.ParseExact("11/07/2014 12:00:00 AM",
"MM/dd/yyyy hh:mm:ss tt",
CultureInfo.InvariantCulture)