Я пишу небольшую программу о времени, но, похоже, в настройках часового пояса MacBook есть некоторые проблемы, мой текущий часовой пояс в Системные настройки сейчас равен JST (UTC + 9).
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
int main (int argc, char *argv[]) {
time_t time_in_second;
struct tm *time_today;
time (&time_in_second);
time_t today_in_second = time_in_second - (time_in_second % 86400);
time_today = gmtime(&today_in_second); // will out put 00:00
time_today = localtime(&today_in_second); // will output 09:00
printf ("year: %d\nmonth: %d\nday: %d\nhour: %d\nminuts: %d\nsecond: %d\n", \
1900+time_today->tm_year, 1+time_today->tm_mon,\
time_today->tm_mday, time_today->tm_hour, time_today->tm_min, time_today->tm_sec);
return 0;
}
Не должен ли localtime
выводить 00:00
вместо gmtime
?
Или я просто недопонимаю по этому поводу?
Как я могу это исправить?Я провел некоторый поиск, но у меня есть только способ изменить настройку часового пояса операционной системы.
Могу ли я изменить аппаратный часовой пояс на UTC, чтобы избежать этой проблемы?