Как остановить Timer (который использует класс временной шкалы) с помощью функции endtest, которая нуждается в событии

Пересечение границы «компьютерного времени» и «времени людей» - это кошмар. Главное, что нет никаких стандартов для правил, регулирующих часовые пояса и летнее время. Страны могут свободно изменять свой часовой пояс и правила летнего времени в любое время, и они это делают.

Некоторые страны, например. Израиль, Бразилия, каждый год решают, когда им нужно летнее время, поэтому невозможно заранее знать, когда (если) будет действовать DST. Другие имеют фиксированные (ish) правила относительно того, когда действует DST. Другие страны не используют DST как все.

Временные интервалы не должны быть полными часовыми отличиями от GMT. Непал +5.45. Есть даже часовые пояса, которые составляют +13. Это означает, что:

SUN 23:00 in Howland Island (-12)
MON 11:00 GMT 
TUE 00:00 in Tonga (+13)

- одно и то же время, но 3 разных дня!

Также нет четких стандартов аббревиатур для часовых поясов и того, как они меняются, когда DST, чтобы вы закончили такие вещи:

AST Arab Standard Time     UTC+03
AST Arabian Standard Time  UTC+04
AST Arabic Standard Time   UTC+03

Лучший совет - как можно больше держаться подальше от местных времен и придерживаться UTC, где можете. Только конвертировать в местное время в последний возможный момент.

При тестировании убедитесь, что вы тестируете страны в западном и восточном полушариях, причем оба DST находятся в процессе и нет, и страна, которая не использует DST (6 в всего).

0
задан Darnell 30 March 2019 в 22:45
поделиться