假设我有字符串“20171013”,现在我想将它转换为 13-10-2017,它也应该在字符串中。此外,我已将这些字符串存储在列表的属性中。是否可以使用 foreach
循环转换所有这些字符串编号的属性?
这是我正在处理的代码
calendarResponse.AgendaOptions
.ForEach(a => a.AppointmentDate =
DateTime.ParseExact(a.AppointmentDate, "ddMMyyyy",
CultureInfo.InvariantCulture).ToString());
在这里,AppointmentDate 有字符串格式的日期,如“20171013”
我得到了错误:
DateTime represented by the string is not supported in calendar System.Globalization.GregorianCalendar
错误的原因是正确的格式应该是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();
对于给定的代码:
calendarResponse.AgendaOptions.ForEach(a =>
a.AppointmentDate = DateTime.ParseExact(a.AppointmentDate, "yyyyMMdd", CultureInfo.InvariantCulture)
.ToString("dd-MM-yyyy", CultureInfo.InvariantCulture));
对于支持的 DateTime
格式 see documentation