That is possibly an operating system issue, but normally I would expect the system clock to be universally set to UTC and the TZ offset to be stored separately and applied to higher level time functions such as std::time()
for example.
If you specifically want UTC, perhaps std::gmtime()
would be more appropriate, since it is explicitly documented as UTC regardless of local time or system clock.
Additionally, regardless of all that, you have to consider how this computer will acquire a local timezone - it needs information to determine that. It might be manually entered, or determined by GNSS position if it has one, or it might "guess" from IP address (which can easily be wrong in territories with multiple timezones). Either way it is not magic.
You can in any event easily test the behaviour of system_clock
by temporarily manually modifying your system's TZ.