簡體   English   中英

將字符串從“yyyy-MM-dd”轉換為日期時間

[英]Converting a string to datetime from "yyyy-MM-dd"

盡管這個問題似乎已經被問了很多次,但我似乎找不到特定於我的問題的答案:

我有一個 C# XML 解析器從 XML 文件中讀取的變量。 它是一個字符串,格式為"yyyy-MM-dd" 我想使用SQL將此變量讀入我們的數據庫,但它需要采用正確的日期時間格式才能執行此操作。 不幸的是,我找不到"yyyy-MM-dd"任何日期時間格式。 我錯過了什么嗎?

如果可能的話,我希望能夠在必須打開SQL連接之前將變量轉換為日期時間。

如果可能的話,我希望能夠在必須打開 SQL 連接之前將變量轉換為日期時間。

DateTime result = DateTime.ParseExact("2012-04-05", "yyyy-MM-dd", CultureInfo.InvariantCulture);

也許 ParseExact 函數可以幫助你。

DateTime dResult = DateTime.ParseExact("2012-07-18", "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);

如果您使用 LINQ to XML,您可以簡單地將元素或屬性轉換為DateTime

DateTime date = (DateTime) element;

然后,您可以使用參數化 SQL 將其插入到您的數據庫中。 反對Aaron 的建議:盡可能保持數據最自然的形式,在 vanilla .NET 中是DateTime 您可以將數據保留在有意義的表示中的時間越多,IMO 就越好。

如果您不使用 LINQ to XML,那么 smink 和 Riera 的解決方案很好 - 但如果可能的話,我強烈建議您使用 LINQ to XML :)

在 sql server 中,您可以使用查詢
選擇轉換(VARCHAR(10),GETDATE(),120)作為[YYYY-MM-DD]

如果您不確定它是否有效,您可以使用“TryParseExact”。 如果它有效,“成功”將是真實的。 這樣您就不會冒解析異常的風險。

DateTime timestamp;
bool success = DateTime.TryParseExact("2015-12-25", "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal, out timestamp);
stringDateFormat = "2015-12-25 00:00:00"

string dt= Convert.ToDateTime(stringDateFormat).ToString("d");    // output  -> 2015-12-25

暫無
暫無

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

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