转换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
?
答案 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)
我在查询中使用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)