我怎样才能获得MediumDateString?

B. *_*non 1 c# date-conversion datetime-format

我可以将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);
Run Code Online (Sandbox Code Playgroud)

但是如上所述使用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()之间的中间地带,还是需要"自己滚动"才能得到它?

Jon*_*eet 5

没有,有这两个.NET中之间没有任何东西-如果你看看DateTimeFormatInfo你会看到ShortDatePatternLongDatePattern,但没有"中的日期模式".

如果你知道你需要处理的所有文化,你可以自定义每个文化的显示 - 但我会避免指定一个你不知道有关文化的自定义格式字符串.(如果您了解某些文化但不了解其他文化,您可以为您所知道的人硬编码格式字符串,并为其他人使用长或短模式 - 因此它不会给出相当不错的体验,但至少你不会在无意中做一些文化上无能为力的事情.)