如何将格式为“MM / dd / yy hh:mm:ss tt”的日期对象转换为格式为“dd / MM / yy”的DateObject

时间:2011-05-31 09:50:18

标签: c# date format

我用Google搜索过很多解决方案,但没有任何方法可以帮助我。对于Ex我尝试过以下方法:

public static DateTime ParseDateToSystemFormat(DateTime date)
{
  IFormatProvider culture = new CultureInfo("en-GB", true);

  DateTime dt = DateTime.ParseExact(date.ToString("dd/MM/yyyy"),
                                    "dd/MM/yyyy",
                                    culture,DateTimeStyles.NoCurrentDateDefault);
  return Convert.ToDateTime(dt,culture);

}

如果有人解决了这个问题,请告诉我。

2 个答案:

答案 0 :(得分:3)

日期对象没有与之关联的格式 - 您只使用格式显示。

当需要显示DateTime对象时,请使用customstandard格式字符串来根据自己的喜好设置显示格式。

你在这做什么:

DateTime dt = DateTime.ParseExact(date.ToString("dd/MM/yyyy"),
                                "dd/MM/yyyy",
                                culture,DateTimeStyles.NoCurrentDateDefault);

相当奇怪 - 您正在获取DateTime - date.ToString("dd/MM/yyyy")的特定字符串表示形式,然后将该字符串解析回DateTime个对象。说出DateTime dt = date;,并清除小时/分钟/秒数据,这需要很长的路要走。

如果您只想要DateTime的日期部分,请使用Date属性。它产生:

  

与此实例具有相同日期的新对象,时间值设置为午夜12:00:00(00:00:00)。

答案 1 :(得分:2)

DateTime的内部表示始终相同。 DateTime对象没有附加格式。

如果只是显示问题,请将DateTime转换为字符串并显示该字符串。您已经知道如何操作:使用ToString并指定您想要的格式。