【问题标题】:How to convert different dates with string format to specific format like YYYYMMDD [duplicate]如何将字符串格式的不同日期转换为特定格式,如 YYYYMMDD [重复]
【发布时间】:2021-08-26 11:32:27
【问题描述】:

我正在尝试将不同的字符串日期格式转换为特定格式,即 YYYYMMDD 并且所有传入的日期都是有效的。如何返回代表这种格式的新字符串列表

【问题讨论】:

  • 对于日期,C# 中有 DateTime 类型。和here 你可以找到如何将其转换为带格式的字符串
  • 2000 年 3 月 4 日的日期可能是 4 月 13 日或 3 月 4 日。如果没有额外的提示,就不可能确定是哪一个。
  • 为什么要将其转换为字符串列表?更好的选择是将输入列表解析为 DateTime 实例列表。类型的存在是有原因的。

标签: c# date-formatting c#-5.0 c#-8.0


【解决方案1】:

使用 DateTime.Parse() 将日期/时间信息获取到标准 DateTime 对象中,然后您可以以任何您喜欢的方式输出它。

https://docs.microsoft.com/en-us/dotnet/api/system.datetime.parse?view=net-5.0

【讨论】:

    【解决方案2】:
    public static List<string> TransformDateFormat(List<string> dates)
    {
        var formats = new string[]
        {
            "yyyy/MM/dd",
            "dd/MM/yyyy",
            "MM-dd-yyyy",
            "yyyyMMdd"
        };
    
        return dates
            .Select(date => DateTime.ParseExact(date, formats, null).ToString("yyyyMMdd"))
            .ToList();
    }
    

    您必须指定所有可能的格式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 2021-06-10
      • 2012-02-18
      • 1970-01-01
      相关资源
      最近更新 更多