2012-02-29 63 views
1

如何将datetime对象转换为yyyy/MM/dd的格式?我想这一点:将datetime转换为yyyy/MM/dd

DateTime selectedDate =Convert.ToDateTime(Calendar1.SelectedDate.ToShortDateString()); 
selectedDate = DateTime.ParseExact(selectedDate, "yyyy/MM/dd", CultureInfo.InvariantCulture); 

,但我得到了以下错误:

为“System.DateTime.ParseExact(字符串,字符串,System.IFormatProvider)”的最佳重载的方法匹配具有一些无效参数

参数 '1':无法从 'System.DateTime的' 转换为“STRI NG”

+3

目前还不清楚是否要将字符串转换为DateTime或将DateTime转换为字符串? – 2012-02-29 11:17:26

+1

这是一个糟糕的问题,请重新阅读您所写的内容,然后对其进行修改,使其清晰明了。正如其他人所说的那样,错误信息是清晰而准确的。 – Lazarus 2012-02-29 11:19:27

回答

4

DateTime不具有固有格式 - 仅一个内部表示。

string formatted = DateTime.ToString("yyyy/MM/dd", CultureInfo.InvariantCulture); 

以上formatted字符串将包含在所要求的格式DateTime实例的值:

当你想显示DateTime实例的值格式进场。

0

日期格式在将其转换为字符串或在UI /别处显示时有意义。

如果Calendar1.SelectedDateDateTime类型:

string date = Calendar1.SelectedDate.ToString(
             "yyyy/MM/dd", 
             CultureInfo.InvariantCulture); 

如果Calendar1.SelectedDatestring类型:

string date = DateTime.ParseExact(
          Calendar1.SelectedDate, 
         "yyyy/MM/dd", 
          CultureInfo.InvariantCulture); 
0

使用Calendar1.SelectedDate.ToString("yyyy/MM/dd");

0

ParseExact将字符串转换为datetime,所以

selectedDate = DateTime.ParseExact("2012/02/29", "yyyy/MM/dd", CultureInfo.InvariantCulture); 

会工作。不知道你为什么要将日期时间转换为日期时间?