日期时间转换不返回所需的值

时间:2013-11-05 11:43:16

标签: c# datetime

转换DateTime.Now时出现问题,导致05-11-2013 12:37:37转为2013-11-05 12:37:37。我尝试了以下方法;

DateTime dtn = DateTime.Now;
string ds = dtn.ToString("yyyy-MM-dd");
DateTime dtnn = Convert.ToDateTime(ds);
dtn.ToString("yyyy-MM-dd");

但是他们都给了我05-11-2013(dd-MM-yyyy)而不是2013-11-05(yyyy-MM-dd)。唯一改变的是时间,它已变为00:00:00

有谁知道如何转换为此格式yyyy-MM-dd

5 个答案:

答案 0 :(得分:2)

尝试以下步骤(您的第二行代码应按预期工作):

//To Convert the DateTime to a string with yyyy-MM-dd format
string dateString = DateTime.Now.ToString("yyyy-MM-dd");

//To Convert a string with yyyy-MM-dd format to a date
DateTime dt = DateTime.ParseExact(dateString, "yyyy-MM-dd", CultureInfo.InvariantCulture);

修改

根据评论,如果您要求比较日期,则不需要上述任何一项。比较日期作为日期而不是字符串。

答案 1 :(得分:0)

enter image description here

我在查询中使用dtnn来检查日期,这就是我想要转换它的原因。 dtnn是dd-mm-yyyy,你可以在我的照片中看到。

答案 2 :(得分:0)

您可以通过提供IFormatProvider(例如DateTimeFormatInfo)来设置Convert.ToDateTime()中的格式。

您可以在此处详细了解: http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo(v=vs.110).aspx

答案 3 :(得分:0)

这里有格式化日期的方法:

则DateTime.ToString( “U”)

您可以使用其他格式:

// This example displays the following output to the console:
//       d: 6/15/2008
//       D: Sunday, June 15, 2008
//       f: Sunday, June 15, 2008 9:15 PM
//       F: Sunday, June 15, 2008 9:15:07 PM
//       g: 6/15/2008 9:15 PM
//       G: 6/15/2008 9:15:07 PM
//       m: June 15
//       o: 2008-06-15T21:15:07.0000000
//       R: Sun, 15 Jun 2008 21:15:07 GMT
//       s: 2008-06-15T21:15:07
//       t: 9:15 PM
//       T: 9:15:07 PM
//       u: 2008-06-15 21:15:07Z
//       U: Monday, June 16, 2008 4:15:07 AM
//       y: June, 2008
//       
//       'h:mm:ss.ff t': 9:15:07.00 P
//       'd MMM yyyy': 15 Jun 2008
//       'HH:mm:ss.f': 21:15:07.0
//       'dd MMM HH:mm:ss': 15 Jun 21:15:07
//       '\Mon\t\h\: M': Month: 6
//       'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00

答案 4 :(得分:0)