Проблема с DateTime.Now на сервере - PullRequest
1 голос
/ 04 октября 2010

У меня большая проблема, и я не знаю, как ее решить

Я создал веб-приложение и разместил его на сервере США, а пользователи, которые обращаются к этому веб-приложению из Египта

Проблема в том, что я использую метод DateTime.Now внутри приложения, и этот метод возвращает время сервера США, а не время машины, которая его использует в Египте

Как я могу решить эту проблему? пожалуйста, помогите мне как можно скорее

Заранее спасибо

Ответы [ 4 ]

5 голосов
/ 04 октября 2010

Ну, вы могли бы начать с использования DateTime.UtcNow, передав , что клиенту, а затем выполнив соответствующие преобразования часового пояса на клиенте.Обычно это разумный способ работы - если вы можете выполнять обработку на клиенте (например, в JavaScript).

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

3 голосов
/ 04 октября 2010

Вам необходимо преобразовать значение datetime в часовой пояс ваших пользователей. Один простой способ сделать это - позвонить по номеру ConvertTime и передать нужный часовой пояс следующим образом:

DateTime now = TimeZoneInfo.ConvertTime(DateTime.UtcNow, 
    TimeZoneInfo.FindSystemTimeZoneById("Egypt Standard Time"));
2 голосов
/ 04 октября 2010

Сгенерируйте время с помощью UTS, чтобы оно было нормировано, а затем отобразите его в зависимости от местоположения пользователя или его предпочтений.

Вы можете прочитать это также: Создание DateTime в определенном часовом поясе в c # fx 3.5

0 голосов
/ 04 октября 2010

Ну, вы можете использовать DateTime.UTCNow , а затем преобразовать в местное время.

...