|
|
|
Разница UTC
|
|||
|---|---|---|---|
|
#18+
Как можно программно вычислить разницу между локальным временем и временем UTC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2008, 15:36 |
|
||
|
Разница UTC
|
|||
|---|---|---|---|
|
#18+
Предполагаю, что как разницу между датами) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 10:28 |
|
||
|
Разница UTC
|
|||
|---|---|---|---|
|
#18+
Спасибо, но ведь число, которое вы взяли произвольным, должно быть точно известно. В настройках компьютера стоит флажок "Автоматический переход на летнее время и обратно". Т.е. в летнее время разница между локальным временем и временем UTC будет 4, а в зимнее время 3 часа. Т.е нужна не разница как таковая, а, возможно, признак, по которому можно определить, летнее или зимнее время сейчас. Все это нужно, т.к. в базе данных исторического сервера данные хранятся по гринвичевскому времени, а чтобы обратиться к ним, нужно от локального времени компьютера отнимать эту разницу. Расскажите, если кто-нибудь что-то понял из моего запутанного рассказа) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 11:14 |
|
||
|
Разница UTC
|
|||
|---|---|---|---|
|
#18+
Число взял произвольное т.к. не знаю, какая у Вас разница с UTC, можно: Код: plaintext Определить летнее или зимнее время можно, например, так) : Код: plaintext 1. 2. 3. 4. Но надо добавить функцию, которая будет определять последнее воскресенье марта и последнее воскресенье октября для произвольного года. Кстати, возможно, есть Api функция, которая определяет летнее/зимнее время. А какая БД? Например, Oracle умеет работать с UTC датами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 13:18 |
|
||
|
Разница UTC
|
|||
|---|---|---|---|
|
#18+
Wasup!Но надо добавить функцию, которая будет определять последнее воскресенье марта и последнее воскресенье октября для произвольного года. Это для меня не представляется простой задачей( Что касается Api функции, то попробовала применить GetTimeZoneInformation. Должно быть так: UTC=Local time + biaz. Значение biaz почему-то всегда -180 (у меня часовой пояс GMT+3:00:00), независимо от того, зимнее или летнее время в системе. Еще есть Dayligt biaz-по логике вещей при летнем времени там должно быть -60, ан нет! И никакого другого признака мне пока не удалось найти. Эх) Наверное, плохо ищу) Wasup!А какая БД? База данных SQL SCADA-системы WinCC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 13:54 |
|
||
|
Разница UTC
|
|||
|---|---|---|---|
|
#18+
Если кому интересно, проблема решена следующим образом: Для того чтобы считать локальное время компьютера и время UTC в библиотеке "kernel32.dll" есть две функции для чтения этих значений: GetLocalTime и GetSystemTime соответственно. Разница между этими двумя значениями дает искомую величину: 3 часа в зимнее время, 4 часа в летнее. Конечно, если в настройках Windows задан Переход на зимнее/летнее время. Вот, в принципе, и все! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2008, 11:14 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35410989&tid=2162101]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 319ms |

| 0 / 0 |
