簡體   English   中英

將日期字符串轉換為 DateTime 格式

[英]Convert date string to DateTime format

我有日期字符串,例如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);

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

output:

運行時異常(第 -1 行):字符串未被識別為有效的 DateTime。

堆棧跟蹤:

[System.FormatException: String 未被識別為有效的 DateTime。] 在 System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style) at System.DateTime.ParseExact(String s, String format, IFormatProvider provider)在 Program.Main()

您需要使用正確的格式字符串格式化 output,如下所示:

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

如果您沒有指定格式,.NET 會選擇它認為正確的任何格式(當您不在美國時,通常不是這樣)。

您還需要嚴格區分DateTime值及其以string形式表示的形式。 無論您如何格式化它,值本身都將保持不變。

您在parse方法中使用的格式字符串表示輸入字符串的格式。

DateTime沒有顯示格式,實際上它是一個數值,表示自特定 Epoch 以來的刻度數。 來自官方文檔

時間值以 100 納秒為單位,稱為滴答聲。 一個特定的日期是自 GregorianCalendar 日歷中 0001 年 1 月 1 日午夜 12:00 以來的刻度數。 該數字不包括閏秒添加的刻度。 例如,刻度值 31241376000000000L 表示日期為 0100 年 1 月 1 日星期五午夜 12:00:00。

解析字符串時,我發現最好使用ParseExactTryParseExact 要打印DateTime值的字符串表示形式,請使用ToString的重載,它接受表示您要顯示的格式的string

var BrazilianDateString = "03/10/1999";
var DateTimeValue = DateTime.ParseExact(BrazilianDate, "dd/MM/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(DateTimeValue.ToString("yyyy-MM-dd HH:mm:ss.fff");

這段代碼對我有用:

        DateTime dt = new DateTime();

        string x = "03/10/1999 22:10:10";

        dt = DateTime.Parse(x);

        Console.WriteLine(dt.ToShortDateString());
        Console.WriteLine(dt.ToShortTimeString());

        Console.ReadLine();

控制台 output:

1999 年 3 月 10 日

22:10

不要使用那個 CultureInfo,DateTime 可以自己理解西班牙-巴西的日期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM