将日期字符串转换为DateTime格式

Hud*_*ros 1 c# datetime date

我有日期字符串,例如03/10/1999格式是dd/MM/yyyy(pt-BR格式)。

而且我需要将此日期转换为类似SQL的格式yyyy-MM-dd HH:mm:ss.fff

我尝试使用Parse和ParseExact函数,但到目前为止没有成功。我将下面的结果...


使用解析

var BrazilianDate = "03/10/1999";
var Parse = DateTime.Parse(BrazilianDate, new CultureInfo("pt-BR"));
Console.WriteLine("Parsed date: " + Parse);
Run Code Online (Sandbox Code Playgroud)

输出: Parsed date: 10/3/1999 12:00:00 AM

没有连字符或毫秒...


使用ParseExact

var BrazilianDate = "03/10/1999";
var ParseExact = DateTime.ParseExact(BrazilianDate, "yyyy-MM-dd HH:mm:ss.fff", new CultureInfo("pt-BR"));
Console.WriteLine(ParseExact);
Run Code Online (Sandbox Code Playgroud)

输出:

运行时异常(第-1行):字符串未被识别为有效的DateTime。

堆栈跟踪:

[System.DateTimeParse.ParseExact(String s,字符串格式,DateTimeFormatInfo dtfi,DateTimeStyles样式),位于System.DateTime.ParseExact(String s,字符串格式,IFormatProvider提供者)处的[System.FormatException:字符串未被识别为有效的DateTime。]在Program.Main()

ger*_*rmi 5

您需要使用正确的格式字符串来格式化输出,如下所示:

Console.WriteLine("Parsed date: " + Parse.ToString("yyyy-MM-dd HH:mm:ss.fff"));
//Parsed date: 1999-10-03 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

如果您未指定格式,.NET会选择它认为合适的任何格式(当您不在美国时,通常不会选择正确的格式)。

您还需要严格区DateTime分值及其string形式。无论您如何设置格式,值本身都将保持不变。