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);
}
}
}
我在尝试解析 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);
}
}
}