DateTime格式引发异常

时间:2019-07-25 19:34:15

标签: c# datetime-format

尝试解析DateTime字符串时遇到此错误:

  

字符串未被识别为有效的DateTime。

var input = "25-JUL-19 03.22.05.036000000 PM"

var output = DateTime.ParseExact(input, "dd-MMM-yy hh.mm.ss.fffffff tt", 
                                    CultureInfo.InvariantCulture, DateTimeStyles.None);

我在格式字符串中用9 f进行了尝试,这导致了同样的错误。

更新

我发现了两种方法可以使它起作用:

方法1:

System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture;
format = String.Format("dd-MMM-yy hh.mm.ss.fffffff{0} tt", 
            input.Substring(26, 2)); // substring to handle .Net's lower precision
output = DateTime.ParseExact(input, format, provider);

方法2:

output = (DateTime)((OracleTimeStamp)inputParam.Value);

其中“ inputParam”声明为:

var inputParam = new OracleParameter("SOME_TIMESTAMP", OracleDbType.TimeStamp, null, ParameterDirection.Output);

1 个答案:

答案 0 :(得分:1)

这似乎是对f指定符的限制。它可以在7上工作,但在8上失败

.env