Кто-нибудь знает, как локализовать диапазоны дат с помощью С#?
В частности, я хочу генерировать "умные" диапазоны дат, чтобы исключить избыточную информацию.
Вот несколько примеров в английском английском
- Август - сентябрь 2009 г.
- Август 2009
- 1 августа - 9, 2009
- 1 января - 3 марта 2009 г.
- 6 декабря 2009 г. - 8 января 2010 г.
Форма, которую я могу сказать, поддерживает .NET Framework для локализации дат, но не диапазонов дат.
Используя информацию в System.Globalization.DateTimeFormatInfo
для локалей Windows, поддерживаемых CultureInfo
, я смог выяснить (большую часть времени), как делать элементы # 1 и # 2. Пункт № 2 просто DateTime.ToString(DateTimeFormatInfo.YearMonthFormat)
. Используя YearMonthFormat
, я также смог вывести форматы для # 1 для большинства языков. Для немногих, что я не мог, я просто дублировал год.
К сожалению, я не могу понять, как делать элементы # 3- # 5 с использованием .NET Framework. Форматы форматов Outlook используются с использованием этих форматов, поэтому я надеялся, что могут быть некоторые API Win32, которые это сделают, но поиск Google для "локализации диапазона дат Win32" ничего полезного не принес.
Мне нравится расширенное удобство использования, предоставляемое "интеллектуальным диапазоном формирования", и я хотел бы, чтобы мои клиенты, не использующие английские версии Windows, получали одинаковые преимущества.
Кто-нибудь знает, как это сделать в зависимости от культуры?