Как сделать местное время с учетом значений даты и времени в формате UTC в ASP.Net без использования Javascript? - PullRequest
2 голосов
/ 21 мая 2009

Можно ли показывать локальное время пользователям без использования Javascript при сохранении значений в формате UTC?

Ответы [ 3 ]

2 голосов
/ 21 мая 2009

Вам понадобится сервер, чтобы знать часовой пояс клиентов. В типичном запросе недостаточно информации для такого определения, самый близкий, который вы можете получить, это заголовок Accept_Language, который может дать вам подсказку, но вряд ли достаточно полезен (особенно, если клиент находится в стране с несколькими часовыми поясами) .

Следовательно, вам нужно, чтобы пользователь сказал вам, какой у него часовой пояс, а затем использовал логон или cookie для хранения этой информации.

0 голосов
/ 21 мая 2009

Думаю, это самое близкое, что вы можете сделать:

using System.Globalization;

// get the first language from request (en, fr, ru)
var primaryLanguage = Request.UserLanguages.First().Split(";").First();
// find a culture by this language
var culture = new CultureInfo(primaryLanguage);
// if the culture is neutral, try to find the specific one
if (culture.IsNeutralCulture)
    culture = CultureInfo.GetCultures(CultureTypes.SpecificCultures).FirstOrDefault(o => o.TwoLetterISOLanguageName == primaryLanguage);
// get the string from a datetime
var datetimeText = culture ? DateTime.Now.ToString(culture) : DateTime.Now.ToString();
0 голосов
/ 21 мая 2009

Вы можете выполнить преобразование на стороне сервера в vb.net, c # или любом другом языке .net, который вы используете. Вам нужно будет где-то перевести в местное время.

Вы задаете очень широкий вопрос без подробностей, поэтому я не могу порекомендовать, как это сделать на сервере.

Редактировать

Основываясь на комментариях, я вижу, что ваша проблема в том, что вы хотите выяснить, какой часовой пояс у пользователя без javascript. У меня всегда пользователь говорит мне свой часовой пояс при регистрации.

Одним из подходов, который не будет идеальным, было бы использование службы поиска geo-ip, которая, скорее всего, сообщит вам, где находится ваш пользователь, и предоставит более детальную информацию, чем при использовании языковых настроек.

...