Я собираюсь создать конвертер для перевода даты в пользовательский формат.
На самом деле в одном конвертере у меня есть такая дата 17/05/2011 00:00:00, которую я хотел бы преобразовать просто в 17/05/2011. Однако культура также должна быть принята во внимание.
В моем примере выше у меня была британская культура, но если пользователь американец, то он должен быть преобразован в 17.05.2011.
По сути, мне также понадобится ConvertBack для преобразования даты назад независимо от культуры в формат, удобный для базы данных, чтобы сохранить его обратно универсально и безопасно без недоразумений.
Это была моя первая попытка, которая уже не удалась:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if(value == null)
return null;
DateTime date = DateTime.Parse(value.ToString(), culture);
return date;
}
Также удивительно, что параметр CultureInfo выше имеет значение Us-en, несмотря на то, что в Windows все установлено на United Kingdom. Кстати, я использую этот конвертер для Silverlight 4, возможно, получение культуры здесь отличается ... Тем не менее, достаточно странно, я получаю ожидание «Строка не была распознана как допустимый DateTime». Я думаю, это связано с американской культурой, которая не понимает 17 как месяц. Как установить местную культуру в приложении Silverlight?
И тогда мне понадобится второй преобразователь, чтобы вернуть только время, подобное приведенному выше. я подумал, что смогу использовать перегрузку DateTimeStyles.NoCurrentDateDefault, чтобы она генерировала только время из дат, верно?
Большое спасибо за вашу помощь,