QDateTime设置硬件时钟(RTC)及系统时钟
来源:互联网 发布:js bind call apply 编辑:程序博客网 时间:2024/05/29 16:15
#include <linux/rtc.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
void convertDateTimeToTm(const QDateTime &dt, struct tm &tm)
{const int wday[8]={0,1,2,3,4,5,6,0};
tm.tm_sec=dt.time().second();/* Seconds.[0-60](1 leap second)*/
tm.tm_min=dt.time().minute();/* Minutes.[0-59] */
tm.tm_hour=dt.time().hour();/* Hours. [0-23] */
tm.tm_mday=dt.date().day();/* Day.[1-31] */
tm.tm_mon=dt.date().month()-1;/* Month.[0-11]*/
tm.tm_year=dt.date().year()-1900;/* Year- 1900.*/
tm.tm_wday=wday[dt.date().dayOfWeek()];
tm.tm_yday=dt.date().dayOfYear()-1;
tm.tm_isdst=-1;/*DST.[-1/0/1]*/
}
/**
* @brief writeRTC
* @param pUTCTime
* 参数为UTC时间,会自动把UTC时间转换为系统时间
* @return
*/
bool writeRTC(struct tm *pUTCTime)
{
int fd, retcal;
fd = open("/dev/rtc",O_RDWR|O_NOCTTY); //打开设备
if (fd == -1)
{
perror("error1");
}
struct rtc_time rtc_tm;
rtc_tm.tm_year = pUTCTime->tm_year;
rtc_tm.tm_mon = pUTCTime->tm_mon;
rtc_tm.tm_mday = pUTCTime->tm_mday;
rtc_tm.tm_hour = pUTCTime->tm_hour;
rtc_tm.tm_min = pUTCTime->tm_min;
rtc_tm.tm_sec = pUTCTime->tm_sec;
retcal = ioctl(fd, RTC_SET_TIME, &rtc_tm); //写入设备
if (retcal == -1)
{
perror("error2");
}
close(fd);
return fd!=-1 && retcal!=-1;
}
/**
* @brief setDateTime
* @param systemDT
* 参数为系统时间
*/
void setDateTime(const QDateTime &systemDT)
{
struct tm systemTime,utcTime;
convertDateTimeToTm(systemDT, systemTime);
convertDateTimeToTm(systemDT.toUTC(), utcTime);
/**
* stimt()等函数设置的是系统时钟,不会修改硬件时钟,系统重启后仍会加载硬件时钟。
* */
//设置硬件时钟
writeRTC(&utcTime); //hwclock -r查看硬件时钟
//设置系统时钟
time_t t = mktime(&systemTime);
stime(&t);
}
- QDateTime设置硬件时钟(RTC)及系统时钟
- Linux硬件时钟和系统时钟设置
- s3c6410硬件RTC(实时时钟)
- STM32 RTC时钟设置
- 查看系统RTC时钟
- 硬件时钟和系统时钟
- arm-linux开机读取硬件时钟,设置系统时钟。
- linux RTC 与系统时钟
- linux设置硬件时钟
- AT91SAM9260硬件时钟RTC的使用
- AT91SAM9260硬件时钟RTC的使用
- linux系统时钟和硬件时钟不一致
- linux系统时钟和硬件时钟
- linux 之系统时钟和硬件时钟
- 系统时钟和硬件时钟同步
- [原创]RX801SJ 实时时钟RTC调试纪要 : 时钟输出设置
- linux硬件时钟的设置
- u-boot 第二阶段 硬件初始化之设置系统时钟
- iOS-Protocol Buffers
- java调用opencc进行中文简体繁体转换
- jvm的初识
- jQquery id选择器的使用
- nginx 403 forbidden 二种原因
- QDateTime设置硬件时钟(RTC)及系统时钟
- 左神的书——《程序员代码面试指南》之逆置单链表的部分节点 c++实现
- 运气a
- centos下使用yum安装jdk
- 搭建一个开发Predix软件的Ubuntu 系统(1)安装Ubuntu
- Glide.placeholder()图片会显示不出来
- Java Web开发Model1(Jsp+JavaBean)
- 软件测试实践-性能测试
- 深度学习框架Keras的安装