【问题标题】:How to Convert Date Object with Format "MM/dd/yy hh:mm:ss tt" to DateObject with Format "dd/MM/yy如何将格式为“MM/dd/yy hh:mm:ss tt”的日期对象转换为格式为“dd/MM/yy”的日期对象
【发布时间】:2011-09-05 08:39:12
【问题描述】:

我搜索了很多并尝试了很多解决方案,但没有一个对我有用。例如,我在下面尝试过:

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);

}

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

【问题讨论】:

  • 请描述您想要实现的目标。正如答案所指出的,DateTime 对象没有附加格式。您的问题一定出在其他地方。
  • DateTime 对象没有格式。你可以用你想要的格式打印这个对象。
  • 这只有在这个操作返回一个字符串时才有意义

标签: c# date format


【解决方案1】:

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

如果只是显示问题,则将DateTime转换为字符串并显示该字符串。你已经知道怎么做:使用ToString 并指定你想要的格式。

【讨论】:

    【解决方案2】:

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

    当需要显示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)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-25
      • 2012-03-05
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      相关资源
      最近更新 更多