【问题标题】:Convert string of date format to string of another date format将日期格式的字符串转换为另一种日期格式的字符串
【发布时间】:2016-12-01 13:25:41
【问题描述】:

我想把日期格式的字符串转换成另一种格式的字符串。

字符串 DateOfBirth 可以是不同的格式,例如:

  • 2017 年 1 月 15 日
  • 01-15-2017
  • 1.15.2017
  • 1.5.2017

我想把它转换成另一种模式,我把它作为参数。

public string ConvertStringDateFormat(string date, string convertToDateFormat)
{
}

假设 date = "01/15/2017" 和 convertToDateFormat = "YYYY/MM/DD"。如何将其更改为新格式?

对我来说,问题是让它通用,以便它可以接受任何参数。

我认为我可以将日期转换为 DateTime,然后将 ToString 与格式一起使用,但您能提供更好的主意吗?

【问题讨论】:

标签: c#


【解决方案1】:

解析为DateTime,然后返回String:

public string ConvertStringDateFormat(string date, string convertToDateFormat) {
  return DateTime
    .ParseExact(date,
       new string[] { "M/d/yyyy", "M-d-yyyy", "M.d.yyyy" },
       CultureInfo.InvariantCulture, 
       DateTimeStyles.AssumeLocal)
    .ToString(convertToDateFormat); // convertToDateFormat = @"yyyy\/MM\/dd" for YYYY/MM/DD
}

【讨论】:

  • 在您使用@ 和\/ 时,您的最终ToString 格式是否正确?
  • @TheLethalCoder: '\' 转义 '/' 符号作为分隔符
  • 其实应该是ToString(convertToDateFormat)
  • @DmitryBychenko 哦,我没有意识到 / 是字符串调用中的特殊字符
【解决方案2】:

我认为这会起作用:

   (Convert.ToDateTime(date)).ToString(convertToDateFormat)

【讨论】:

    【解决方案3】:

    试试这个

    public string ConvertStringDateFormat(string date, string convertToDateFormat)
    {
        return Convert.ToString(Convert.ToDateTime(date),convertToDateFormat);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-01
      • 1970-01-01
      • 2021-11-24
      • 2013-07-13
      相关资源
      最近更新 更多