C++使用localtime函数需要注意的地方

VS2013中出现:

This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

查阅后使用了

errno_t localtime_s(
   struct tm* _tm,
   const time_t *time 
);
errno_t _localtime32_s(
   struct tm* _tm,
   const time32_t *time 
);
errno_t _localtime64_s(
   struct tm* _tm,
   const _time64_t *time 
);


在处理时间时用到了localtime这个函数,将一个UTC时间转为本地时间:


这里localtime返回了一个tm指针,空间是由localtime自己控制的,所以如果连续调用这个函数会有问题

很多时候我们会同时处理两个时间,例如表示时间段的【起始时间】【结束时间】,代码如下:

所以要记住,一旦调用了localtime函数,应该马上取出tm结构中的内容: