【发布时间】:2021-04-13 00:38:42
【问题描述】:
我必须从字符串日期中提取日期时间模式。
例如 我有日期时间字符串“2020.01.01-09:20” 我使用文化解析这个字符串
var culture = new CultureInfo("en-us");
var date = "2020.01.01-09:20";
var isParsed = DateTime.TryParse(date, culture, DateTimeStyles.AdjustToUniversal, out var result);
结果正确。 现在我必须对日期和时间进行一些随机更改,并将其解析回字符串,并使用从原始字符串中提取的模式。
我制作了一个包含所有文化模式的方法
private static IList<string> GetDateTimePatterns(CultureInfo culture)
{
var info = culture.DateTimeFormat;
return new string[]
{
info.FullDateTimePattern,
info.LongDatePattern,
info.LongTimePattern,
info.ShortDatePattern,
info.ShortTimePattern,
info.MonthDayPattern,
info.ShortDatePattern + " " + info.LongTimePattern,
info.ShortDatePattern + " " + info.ShortTimePattern,
info.YearMonthPattern,
info.SortableDateTimePattern
};
}
结果
foreach (var pattern in GetDateTimePatterns(culture))
{
Console.WriteLine(result.ToString(pattern ,culture));
}
生成输出:
Wednesday, January 1, 2020 9:20:00 AM
Wednesday, January 1, 2020
9:20:00 AM
1/1/2020
9:20 AM
January 1
1/1/2020 9:20:00 AM
1/1/2020 9:20 AM
January 2020
2020-01-01T09:20:00
如您所见,没有与原始字符串相同的模式。
如何根据文化提取正确的模式?
【问题讨论】:
标签: .net string datetime extract