Timezone?
От: Аноним  
Дата: 28.09.10 21:21
Оценка:
В БД хранится дата в колонке типа datetime в некотором непонятном формате, и к ней — поправка под названием TimeZone в виде числа.

Опытным путем установлено, что:

1. При выборе в UI часового пояса "GMT (Casablanka, Monrovia, Reykjavik)" (типа, GMT+0, надо полагать), время выводится на форму так, как оно хранится в базе (по крайней мере, отображается SQL SMS), при этом в БД записывается TimeZone == 31.
2. При выборе в UI часового пояса "GMT (Greenwich Mean Time: Dublin, Edinburgh)" (тоже GMT+0???), время выводится на форму со смещением на час вперед, по сравнению с тем, как оно хранится в базе, при этом в БД записывается TimeZone == 2.
3. При выборе в UI часового пояса "GMT +3 (Moscow)", время выводится на форму со смещением на 4 часа вперед, по сравнению с тем, как оно хранится в базе, при этом в БД записывается TimeZone == 51.

Вопросы:

1. Почему два GMT+0, один из которых на самом деле +1? Почему GMT +3 (Moscow) на деле +4? Иными словами, что это за формат хранения даты?
2. Как кодируется в этой системе TimeZone? 2, 31, 51 — никакого намека на +n.

Что интересует в конечном итоге, это как имея инстансы DateTime dt и int timeZone получить строку (например, с помощью .ToString("d")). Но с этим я и сам справлюсь, если будут ответы на вопросы 1 и 2.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.