一个字符串转换从为datetime“YYYY-MM-DD”(Converting a string

2019-09-19 18:12发布

虽然它看起来像这个问题已经被问了一堆的时候,我似乎无法找到答案,这是专门针对我的问题:

我有一个从XML文件由C#XML解析器读取变量。 这是一个字符串,格式为"yyyy-MM-dd" 。 我想读这个变量使用到我们的数据库SQL ,但它需要在适当的日期时间格式,以便为我做到这一点。 不幸的是,我找不到任何日期时间格式"yyyy-MM-dd" 。 我缺少的东西吗?

我宁愿能够将变量转换为datetime之前,我不得不打开我的SQL连接,如果可能的话。

Answer 1:

我宁愿能够将变量转换为datetime之前,我不得不打开我的SQL连接,如果可能的话。

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


Answer 2:

也许ParseExact功能可以帮助您。

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


Answer 3:

如果你正在使用LINQ to XML,你可以简单地把元素或属性,以DateTime

DateTime date = (DateTime) element;

然后,你可以使用参数化的SQL插入到你的数据库。 我认为亚伦的建议:只要有可能,让您的数据在其最自然的形式,这在香草.NET是一个DateTime 。 时间越长,你可以将数据保存在一个有意义的表示,更好IMO。

如果你不使用LINQ to XML,然后从smink和里埃拉的解决方案都很好 - 但我强烈建议您使用LINQ到XML,如果你所能:)



Answer 4:

在SQL Server中,你可以使用查询
SELECT CONVERT(VARCHAR(10),GETDATE(),120)AS [YYYY-MM-DD]



Answer 5:

如果你不知道它会工作,你可以使用“TryParseExact”。 如果它的工作原理“成功”将是真实的。 这样,你是不是冒着解析异常。

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


文章来源: Converting a string to datetime from “yyyy-MM-dd”