Я собираюсь создать конвертер для перевода даты в пользовательский формат.
На самом деле в одном конвертере у меня есть дата, подобная этой 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 для него, чтобы генерировать только время из дат, правильно?
Большое спасибо за вашу помощь,