DateTime 格式抛出异常

DateTime format throws exception

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

String was not recognized as a valid 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 进行了尝试,这导致了同样的错误。

更新

我找到了两种方法来实现它:

方法一:

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);

方法二:

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

其中 "inputParam" 声明为:

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

这似乎是对 f 说明符的限制。它适用于 7 但在 8

时失败
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            var input = "25-JUL-19 03.22.05.0360000 PM";

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

}