【问题标题】:convert datetime to yyyy/MM/dd将日期时间转换为 yyyy/MM/dd
【发布时间】:2012-02-29 11:14:37
【问题描述】:

如何将日期时间对象转换为格式 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”转换为“字符串”

【问题讨论】:

  • 不清楚是将字符串转换为DateTime,还是将DateTime转换为字符串?
  • 这是一个糟糕的问题,请重新阅读您所写的内容,然后对其进行修改,使其清晰且有意义。正如其他人所说,错误信息清晰准确。

标签: c# datetime


【解决方案1】:

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

当您想要显示DateTime 实例的值时,格式化会发挥作用:

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

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

【讨论】:

    【解决方案2】:

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

    如果Calendar1.SelectedDateDateTime 类型:

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

    如果Calendar1.SelectedDate 属于string 类型:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        会起作用的。不确定为什么要将日期时间转换为日期时间??

        【讨论】:

          猜你喜欢
          • 2013-10-19
          • 1970-01-01
          • 2023-03-15
          • 1970-01-01
          • 2019-02-16
          • 1970-01-01
          • 2023-03-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多