一、实现思路
1)C语言获取当前时间(精确到秒)
C语言中,使用std::time函数和std::localtime函数可以获取当前时间(精确到秒)。详情见《标准库头文件 ctime》
关键代码:
#include <time.h>
time_t seconds_since_epoch = time(NULL); // 获取从1970-01-01 00:00:00到现在的秒数
tm current_time = *localtime(&seconds_since_epoch); // 获取当前时间(精确到秒)
2)C++11获取当前时间(精确到微妙)
使用C++11新加入std::chrono库可以获取精确到微妙的当前时间。详情见《标准库头文件 chrono》
关键代码:
#include <ctime>
#include <chrono>
using namespace std::chrono;
auto duration_since_epoch = system_clock::now().time_since_epoch(); // 从1970-01-01 00:00:00到当前时间点的时长
auto microseconds_since_epoch = duration_cast<microseconds>(duration_since_epoch).count(); // 将时长转换为微秒数
time_t seconds_since_epoch = static_cast<time_t>(microseconds_since_epoch / 1000000); // 将时长转换为秒数
std::tm current_time;
localtime_r(&seconds_since_epoch, ¤t_time ); // 获取当前时间(精确到秒)
auto tm_microsec = microseconds_since_epoch % 1000; // 当前时间的微妙数
auto