3

我有一个 Web 服务方法,它从2012-11-18 11:21:03格式的 sql 获取数据, 当我将其保存为 C# 字符串时,它变为以下格式:18.11.2012 11:21:03 如何将其更改回SQL 格式2012-11-18 11:21:03

4

4 回答 4

11

再次将其解析为 dateTime

DateTime myTime = DateTime.Parse(myString);

并回到适当的字符串

myTime.ToString("yyyy-MM-dd HH:mm:ss");

或者只是将其读入日期时间并切断中间人。

于 2013-04-09T19:35:28.137 回答
2

您可以通过使用如下格式字符串来获得通用可排序的字符串格式(看起来像 SQL 服务器使用的格式)"u"

var dateTimeString = String.Format("{0:u}", yourDateTime);
于 2013-04-09T19:40:26.830 回答
0

只需运行以下代码,

var newDateTime = oldDateTime.Date.ToString("yyyy-MM-dd HH:mm:ss");

它只是将其转换回SQL Format DATETIME

于 2013-04-09T19:41:19.770 回答
0

日期作为字符串的问题在于它们不明确,并且格式可能会根据您在世界上的位置甚至本地机器设置而有所不同。您可能会假设日期字符串是 yyyy-mm-dd 但如果它实际上是 yyyy-dd-mm 怎么办?有些日期似乎有效,有些日期无效。

换句话说,2013-02-10 是 2 月 10 日还是 10 月 2 日?如果它只是一个字符串,您将无法确定其意图。

#Haedrian 建议的最佳选择是存储在 DateTime C# 对象中,而不是字符串中。这样它就不会模棱两可,并且您可以访问各种特定日期的功能。如果您必须存储为字符串,则可以如上所述转换回日期或使用

DateTime.TryParse(datestring, out dateVariable);

这不会为无效格式引发异常。取决于你是否想要例外!

另外,我建议您是否必须使用字符串才能在字符串中使用 3 个字符的月份,这再次消除了歧义,例如

"dd-MMM-yy hh:mm tt"
于 2013-04-09T19:47:46.700 回答