我可以将YYYYMMDD格式的字符串值转换为对人类友好的字符串,如下所示:

string beginDate = GetElement(3, fileBaseName);
string endDate = GetElement(4, fileBaseName);
beginDate = DateTime.ParseExact(beginDate,
    "yyyyMMdd",
    CultureInfo.InvariantCulture).ToShortDateString();
endDate = DateTime.ParseExact(endDate,
    "yyyyMMdd",
    CultureInfo.InvariantCulture).ToShortDateString();
return string.Format("{0} to {1}", beginDate, endDate);


但是如上所述使用ToShortDateString(),我得到的不是期望的格式“ 2016年4月1日至2016年4月30日”

当我尝试使用ToLongDateString()时,它朝另一个方向发展,将数字扩展成我想要的月份名称,但是还提供了星期几的长格式,因此相同的值显示为“星期五” ,2016年4月1日至2016年4月30日,星期六”

我真正想要的是将日期范围显示为“ 2016年4月1日至2016年4月30日”(或“ 2016年4月1日至2016年4月30日”)

我可以使用ToShortDateString()和ToLongDateString()之间的中间立场,还是需要“自己动手”才能做到这一点?

最佳答案

您可以使用自己的自定义格式(MMMM d, yyyy):

beginDate = DateTime.ParseExact(beginDate,
                                "yyyyMMdd",
                                CultureInfo.InvariantCulture)
                    .ToString("MMMM d, yyyy");


endDate = DateTime.ParseExact(endDate,
                              "yyyyMMdd",
                              CultureInfo.InvariantCulture)
                    .ToString("MMMM d, yyyy");

return string.Format("{0} to {1}", beginDate, endDate);


输出:

April 1, 2016 to April 30, 2016

关于c# - 如何获得MediumDateString?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37448427/

10-11 13:58