linux驱动中如果要获取系统当前的时间,可以按如下操作。
头文件
#include <linux/time.h>
#include <linux/timex.h>
#include <linux/rtc.h>
代码
static int get_time_str(char *output)
{
struct timex txc;
struct rtc_time tm;
/* 获取当前的UTC时间 */
do_gettimeofday(&(txc.time));
/* 把UTC时间调整为本地时间 */
txc.time.tv_sec -= sys_tz.tz_minuteswest * 60;
/* 算出时间中的年月日等数值到tm中 */
rtc_time_to_tm(txc.time.tv_sec,&tm);
return sprintf(output, "%04d-%02d-%02d %02d:%02d:%02d"
,tm.tm_year+1900
,tm.tm_mon+1
,tm.tm_mday
,tm.tm_hour
,tm.tm_min
,tm.tm_sec);
}