1. time()
#include <time.h>
time_t time(time_t *tloc)
time(NULL)返回当前UTC+0时间戳。
2. localtime() 会参考系统时区
#include <time.h>
struct tm *localtime(const time_t *timep)
localtime()将UTC+0时间戳(从timep指向的地址空间中获取,一般由time(NULL)获取)转换为本地时间(存储到由tm指向的地址空间)。
3. mktime() 会参考系统时区
#include <time.h>
time_t mktime(struct tm *tm)
mktime()将本地时间(从tm指向的地址空间中获取)转换为UTC+0时间戳。参考:IBM mktime()函数说明
4. stime() 会参考系统时区
#include <time.h>
int stime(const time_t *t)
stime()真正设置了系统时间,其传入参数为UTC+0时间戳(一般由mktime根据想设置的本地时间获取)。看起来stime()入口参数只有一个UTC+0时间戳,但stime()会隐式地参考系统时区,首先找系统环境变量TZ,找不到就找/etc/localtime。