2014-01-31 3 views
1

У меня есть приложение Silverlight и часть сервиса, которая запрашивает базу данных, запускает службы RIA и т. Д. ... находится на другой машине. Если я показываю результаты с датой/временем в представлениях XAML пользователям, я получаю их из запроса. Теперь пользователь переходит к своей машине с Windows, а из региональных языковых настроек изменяется формат даты/времени, например, "yyyy-MM-dd", поэтому теперь они хотят получить результаты в этом формате.Информация о культуре и DateTime в WebApp

Так на моих запросах LINQ я написал что-то вроде этого:

CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern 

Но похоже, это не смотрит на машине клиента, я думаю, что он смотрит на серверной машине, потому что я использовал что в моих запросах LINQ. Итак, как вы думаете, что я должен делать? Должен ли я вместо этого называть его Thread.CurrentThread?

+3

Вы должны передать дату клиенту напрямую, а затем отформатировать его на клиенте. – SLaks

+0

Я с @SLaks. Обычно я живу «конвертируем в/из родного формата как можно ближе к пользователю». –

+0

будет использовать CurrentThread? –

ответ

1

CurrentThread также не будет. Как @Sklaks упомянули, что вы должны сделать это на стороне клиента. Поскольку это приложение SilverLight, я предполагаю, что вы используете привязку в своем XAML, чтобы показать эту дату, поэтому вы должны написать простой конвертер из строки в строку и выполнить преобразование там, передать его в свой XAML вместе со своей привязкой , Что-то вроде этого:

DateTime temp; 
bool valid= DateTime.TryParse(value, out temp); 
if (valid) 
{ 
    result = temp.ToShortDateString(); 
} 
Смежные вопросы