функция putenv на C

мне нужно подправить вот этот код на C, чтобы он выводил не локальное время, а в Калифорнии например, используя функцию putenv. Можете подсказать как это сделать? Вот сам код:

 #include <sys/types.h>
 #include <stdio.h>
 #include <time.h>
 #include <stdlib.h>
 extern char *tzname[];
 main()
 {
     time_t now;
     struct tm *sp;

     (void) time( &now );

     printf("%s", ctime( &now ) );

     sp = localtime(&now);
     printf("%d/%d/%02d %d:%02d %s\n",
         sp->tm_mon + 1, sp->tm_mday,
         sp->tm_year, sp->tm_hour,
         sp->tm_min, tzname[sp->tm_isdst]);
     exit(0);
 }

Ответы (1 шт):

Автор решения: Fat-Zer

От localtime требуется, чтобы он работал так «как если бы» перед ним была вызвана tzset, так что нужно просто установить переменную TZ. Для Калифорнии это может выглядеть, например, так:

putenv("TZ=America/Los_Angeles")
→ Ссылка