如何在c#中将数字转换为dd/mm/yyyy格式?

Sus*_*jan 1 c# datetime

假设我有字符串"20171013",现在我想将其转换为13-10-2017,它也应该在字符串中.此外,我已将这些字符串存储在列表的属性中.是否可以使用foreach循环转换所有这些字符串数量的属性?

这是我正在研究的代码

calendarResponse.AgendaOptions
 .ForEach(a => a.AppointmentDate = 
         DateTime.ParseExact(a.AppointmentDate, "ddMMyyyy", 
                 CultureInfo.InvariantCulture).ToString());
Run Code Online (Sandbox Code Playgroud)

这里,AppointmentDate的日期为字符串格式,如"20171013"

我收到了错误:

日历System.Globalization.GregorianCalendar中不支持由字符串表示的DateTime

Gil*_*een 6

错误原因是,正确的格式应该是yyyyMMdd和不是ddMMyyyy.还应用格式化ToString以获得所需的输出格式:

var data = new List<string> { "20171013" };
var result = data.Select(item => DateTime.ParseExact(item, "yyyyMMdd", CultureInfo.InvariantCulture)
                                         .ToString("dd-MM-yyyy", CultureInfo.InvariantCulture)).ToList();
Run Code Online (Sandbox Code Playgroud)

对于给定的代码:

calendarResponse.AgendaOptions.ForEach(a => 
    a.AppointmentDate = DateTime.ParseExact(a.AppointmentDate, "yyyyMMdd", CultureInfo.InvariantCulture)
                                .ToString("dd-MM-yyyy", CultureInfo.InvariantCulture));
Run Code Online (Sandbox Code Playgroud)

有关支持的DateTime格式,请参阅文档