В 15-00 по времени Екатеринбурга (UTC+6) произошло некоторое событие.
В Красноярске (UTC+8) в это время уже 17-00, на два часа "больше".
Жителю Красноярска мы должны показать его местное время для этого события.
Как сделать это в C++?
Заполним структуру tmDateExternal типа tm, запишем в нее исходное время. Запишем в int nSrcTZ "смещение" UTC для исходного времени, то есть 6.
Теперь в структуре tmDateLocal находится локальное время для исходного события.
В Красноярске (UTC+8) в это время уже 17-00, на два часа "больше".
Жителю Красноярска мы должны показать его местное время для этого события.
Как сделать это в C++?
Заполним структуру tmDateExternal типа tm, запишем в нее исходное время. Запишем в int nSrcTZ "смещение" UTC для исходного времени, то есть 6.
__time64_t t64date = _mkgmtime64(&tmDateExternal) - nSrcTZ*60*60; tm tmDateLocal; _localtime64_s( &tmDateLocal, &t64date );
Теперь в структуре tmDateLocal находится локальное время для исходного события.