将datetime转换为yyyy / MM / dd

时间:2012-02-29 11:14:37

标签: c# datetime

如何将datetime对象转换为yyyy / MM / dd格式?我正在尝试这个:

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

但我收到以下错误:

  

'System.DateTime.ParseExact(string,string,System.IFormatProvider)'的最佳重载方法匹配有一些无效的参数

  

参数'1':无法从'System.DateTime'转换为'string'

4 个答案:

答案 0 :(得分:4)

DateTime没有固有的格式 - 只有内部表示。

当您希望显示 DateTime实例的值时格式化正在发挥作用:

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

上述formatted字符串将包含所需格式的DateTime实例的值。

答案 1 :(得分:0)

当您要将其转换为字符串或在UI /其他地方显示时,日期格式是有意义的。

如果Calendar1.SelectedDate属于DateTime类型:

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

如果Calendar1.SelectedDate属于string类型:

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

ParseExact将字符串转换为日期时间,所以

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

会奏效。不确定为什么要将日期时间转换为日期时间??