Ola*_*che 15
Unix时间是自纪元(1970-01-01)以来的几秒钟.根据您的意思,您可以将其转换为struct tm使用本地时间或使用strftime将其转换为字符串.
time_t t = time(NULL);
struct tm *tm = localtime(&t);
char date[20];
strftime(date, sizeof(date), "%Y-%m-%d", tm);
Run Code Online (Sandbox Code Playgroud)
作为本地时间的手册状态
返回值指向静态分配的结构,该结构可能被后续调用任何日期和时间函数覆盖.
这是一些人称之为数据竞赛的内容.当两个或多个线程localtime同时调用时会发生这种情况
为了防止这种情况,有人建议使用localtime_s,这是Microsoft唯一的功能.在POSIX系统,你应该使用localtime_r,而不是
localtime_r()函数执行相同操作,但将数据存储在用户提供的结构中.
用法看起来像
time_t t = time(NULL);
struct tm res;
localtime_r(&t, &res);
Run Code Online (Sandbox Code Playgroud)