QT中怎么修改当前系统时间?

cgq081616 2010-04-16 11:29:15
本人是在windows下做的 找到了settimeofday这个函数能修改时间,但是不知道怎么算,希望各位大虾给予帮助
...全文
2603 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
feilinhe 2012-05-01
  • 打赏
  • 举报
回复 1
[Quote=引用 19 楼 的回复:]

蛮久时间的帖子了,希望你能看到。。。
我也出现了这位同样的问题,显示的时间总与我设置的时间相差8个小时,随之连日期也会相差一天。。。。
你说的setLocalTime具体该怎么用,可以说说?
引用 14 楼 的回复:

引用 10 楼 wzcyt 的回复:

我在windows系统下,在qt程序中调用setsystemtime函数设置系统时间,为什么最终的结果和我要设置的时间相差……
[/Quote]
windows下的具体解决方法:
1.时差的解释:
http://blog.csdn.net/csu_yang/article/details/7073780
2.使用setLocalTime在windows XP下需要提升权限:
代码

BOOL ImproveProcPriv()
{
HANDLE token;
//提升权限
if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&token))
{
MessageBox(NULL,"打开进程令牌失败...","错误",MB_ICONSTOP);
return FALSE;
}
TOKEN_PRIVILEGES tkp;
tkp.PrivilegeCount = 1;
::LookupPrivilegeValue(NULL,SE_SYSTEMTIME_NAME,&tkp.Privileges[0].Luid);
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if(!AdjustTokenPrivileges(token,FALSE,&tkp,sizeof(tkp),NULL,NULL))
{
MessageBox(NULL,"调整令牌权限失败...","错误",MB_ICONSTOP);
return FALSE;
}
CloseHandle(token);
return TRUE;
}

3.windwos 设置时间API参考:
http://blog.sina.com.cn/s/blog_4c7fa77b01000at8.html
dengdeng1109 2012-05-01
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 的回复:]

这个我做了,代码给你吧,
void adjustdate(int year,int mon,int mday,int hour,int min,int sec)
{
time_t t;
struct tm nowtime;
nowtime.tm_sec=sec;/* Seconds.[0-60] (1leapsecond)*/
nowtime.tm_min=min;/* Mi……
[/Quote]

我做了一点修改,运行之后直接把系统时间改到了1970年1月1日,而且我的time edit和date edit不起作用呀?
#include "set_system_time.h"
#include "ui_set_system_time.h"

Set_System_Time::Set_System_Time(QWidget *parent) :
QDialog(parent),
ui(new Ui::Set_System_Time)
{
ui->setupUi(this);

connect(ui->timeEdit,SIGNAL(timeChanged(QTime)),this,SLOT(timeedit()));
connect(ui->dateEdit,SIGNAL(dateChanged(QDate)),this,SLOT(dateedit()));
}

Set_System_Time::~Set_System_Time()
{
delete ui;
}

void Set_System_Time::timeedit()
{
time_t st;
struct tm *p;
p=localtime(&st);
p->tm_hour=ui->timeEdit->time().hour();
p->tm_min=ui->timeEdit->time().minute();
st=mktime(p);
stime(&st);
}

void Set_System_Time::dateedit()
{
time_t st;
struct tm *p;
p=localtime(&st);
p->tm_year = ui->dateEdit->date().year();
p->tm_mon = ui->dateEdit->date().month();
p->tm_mday = ui->dateEdit->date().day();
st=mktime(p);
stime(&st);
}
dengdeng1109 2012-04-27
  • 打赏
  • 举报
回复
嗯。。。谢谢
[Quote=引用 22 楼 的回复:]

这个我做了,代码给你吧,
void adjustdate(int year,int mon,int mday,int hour,int min,int sec)
{
time_t t;
struct tm nowtime;
nowtime.tm_sec=sec;/* Seconds.[0-60] (1leapsecond)*/
nowtime.tm_min=min;/* Mi……
[/Quote]
xiaofan812 2012-04-27
  • 打赏
  • 举报
回复
这个我做了,代码给你吧,
void adjustdate(int year,int mon,int mday,int hour,int min,int sec)
{
time_t t;
struct tm nowtime;
nowtime.tm_sec=sec;/* Seconds.[0-60] (1leapsecond)*/
nowtime.tm_min=min;/* Minutes.[0-59] */
nowtime.tm_hour=hour;/* Hours. [0-23]*/
nowtime.tm_mday=mday;/* Day.[1-31] */
nowtime.tm_mon=mon-1;/* Month. [0-11]*/
nowtime.tm_year=year-1900 ;/* Year-1900.*/
nowtime.tm_isdst=-1 ;/* DST.[-1/0/1]*/
t=mktime(&nowtime);
stime(&t);
}
sno_guo 2012-04-26
  • 打赏
  • 举报
回复
真不好意思啊,没有分了无法提问,请楼主帮忙,谢谢了

我想开始做QT的编程,但是身边有没有这样的同事,想问下现在大家都是在哪个linux平台上做的,ubuntu?redhat el5? 还是别的什么?
因为和大家一个平台的话,有问题时好解决,谢谢!
dengdeng1109 2012-04-25
  • 打赏
  • 举报
回复
蛮久时间的帖子了,希望你能看到。。。
我也出现了这位同样的问题,显示的时间总与我设置的时间相差8个小时,随之连日期也会相差一天。。。。
你说的setLocalTime具体该怎么用,可以说说?
[Quote=引用 14 楼 的回复:]

引用 10 楼 wzcyt 的回复:

我在windows系统下,在qt程序中调用setsystemtime函数设置系统时间,为什么最终的结果和我要设置的时间相差8个小时呢?有那位大侠知道什么原因吗?

使用setLocalTime
另外linux下,可以使用system()函数执行date命令设置系统时间日期
其实windows下也可以用WinExec()执行date命令和time……
[/Quote]
yanchong 2010-09-21
  • 打赏
  • 举报
回复
利用qt执行不同系统下的修改时间的函数即可
yzhj2005 2010-09-21
  • 打赏
  • 举报
回复
qt没有设置时间的函数吧
火箭猫 2010-09-20
  • 打赏
  • 举报
回复
这个用system调用系统命令就可以了,不过要用超级用户的权限才行
ailinty 2010-09-20
  • 打赏
  • 举报
回复
如果开发板有触摸屏显示器的话,就可以通过Qtopia直接修改系统时间了啊。
feilinhe 2010-09-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wzcyt 的回复:]

我在windows系统下,在qt程序中调用setsystemtime函数设置系统时间,为什么最终的结果和我要设置的时间相差8个小时呢?有那位大侠知道什么原因吗?
[/Quote]
使用setLocalTime
另外linux下,可以使用system()函数执行date命令设置系统时间日期
其实windows下也可以用WinExec()执行date命令和time命令设置日期,时间的
gemfield 2010-09-19
  • 打赏
  • 举报
回复
那和你位于东8区有关系
GE
LE
headio 2010-09-03
  • 打赏
  • 举报
回复
哦,知道了。
tzcherish 2010-07-15
  • 打赏
  • 举报
回复
学习来了。。
wzcyt 2010-07-15
  • 打赏
  • 举报
回复
我在windows系统下,在qt程序中调用setsystemtime函数设置系统时间,为什么最终的结果和我要设置的时间相差8个小时呢?有那位大侠知道什么原因吗?
dext 2010-04-18
  • 打赏
  • 举报
回复
设置系统时间 是平台 相关的

linux
stime
SRC: kernel/time.c

Windows
SetSystemTime
HEADER: Winbase.h / Windows.h
  • 打赏
  • 举报
回复
Qt好像搞不定,估计要用系统命令了,根据不同的系统使用不同的命令看看
MicroSky2813 2010-04-17
  • 打赏
  • 举报
回复
Qt 为了跨平台就要失去一些绑定系统的功能。
根据所需系统使用相应的API,在.pro里面可以设定对不同的系统使用不同的编译
lishaman 2010-04-17
  • 打赏
  • 举报
回复
QT4里面可以这样把 QTime time=QTime::currentTime();
然后在转换显示的格式就可以啦
yeelone 2010-04-17
  • 打赏
  • 举报
回复
这方面好像还没有一个统一的解决方法。只能使用特定系统的api了。
加载更多回复(3)
2022年11月4日-2022年11月14日购买当前课程赠送课程学习地址如下:https://edu.csdn.net/course/detail/32434https://edu.csdn.net/course/detail/35658https://edu.csdn.net/course/detail/30223https://edu.csdn.net/course/detail/32408https://edu.csdn.net/course/detail/32429注:因赠送课程不会出现在已订阅课程列表,以下课程学习地址一定要收藏保存。#课程服务 在线答疑:本课程设有专门的讨论留言区,学习遇到任何问题,直接给老师留言即可,老师都会及时进行回复。远程协助:如果遇到复杂问题,老师还可进行远程协助,这个一般可不是一两百元的课程就能享受到的。源码分享:为了让大家更好的进行项目实战,老师还将课程涉及到的所有源码分享给学员,按照视频的提示进行下载即可。在CSDN分享C++ Qt开发知识已经有6年了,感谢众多博友对我的支持,了解到很多人对Qt的使用还是有些困扰,例如Qt环境搭建,Qt布局的使用,如何使用Qt编写复杂的界面,如何自定义非标控件,Qt如何和Web交互,Qt和后台接口如何交互等;经过这几年的整理,我决定出这套《Qt高级开发视频教程》,带领大家学习Qt高级开发知识,学习如何使用Qt开发企业级别的项目;通过本课程的学习,大家将会达到企业招聘的高级要求。为了照顾零基础学员,本课程第一章会介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。即使没有Qt开发的学习经验,也能跟着课程顺利学习。课程核心知识点地图如下: 课程每章核心知识点介绍如下: 第一章:介绍Qt环境搭建、QtCreator / VS2019的基本使用方法,Qt整体架构、Qt信号机制,Qt内存管理等知识。第二章:了解到很多学员对于Qt界面布局很不熟悉,将会详细介绍Qt设计器布局,以及如何C++代码手写布局,从常见的企业级项目入手,带领大家学会各种布局的实现,例如WPS、腾讯会议、优酷、迅雷等界面的实现;界面布局会了,这是企业项目开发的第一步,还有更重要的无边框窗口,如何设计一个合理的无边框窗口很重要,第三/四章:详细介绍如何实现一个无边框窗口,如何自定义标题栏,如何实现拖拽拉伸;第四章将会介绍如何自定义非标控件,优化Qt界面。第五章:介绍Qt web混合编程,一个商用项目,必然会涉及到web交互,这也是很多Qt开发者的弱项,这一章讲详细介绍C++ Qt web混合开发。第六章:既然是做企业级项目,必然需要和后台交互,http编程也是必要的,将详细介绍http编程,用户注册,登录,后台接口请求等知识;通过第五、六章的学习,将会是你的Qt开发技术更上一层楼。第七章:介绍Qt并发编程,耗时任务处理,进程调用等知识。第八、九章:讲解 Qt 比较重要的知识,图形视图结构,以及MVD模式;通过这两章的学习,大家会对图形视图有更好的了解。第十章:本章是独立章节,主要介绍Qt一些特殊技巧,项目编译,dpi适配、多语言等知识。第十一章:是我们的企业级项目实战:实现一个视频会议客户端,本项目可以进行多人视频通话,直播,桌面分享等功能,本项目我会从零开始,进行项目搭建,功能调试,bug fixed, 带领大家做一个企业级项目。希望通过本课程的学习,大家的C++ Qt开发技术能有质的飞越,能找到自己心仪的工作。课程如果讲的不对的地方,请大家指出,我及时修正,我也只是一个普通开发者,也不是所有的技术都会,尽我所能,把我所会的教给大家,让我们一起为Qt的发展,尽一份绵薄之力。 下面是本课程一些项目的截图: 1 可以滑动的设置界面         2 所有图形的绘制       3 视频播放器          4 高仿youku界面         5 视频会议         相信通过本课程的学习,大家有能力实现绝大部分客户端项目,从此用C++ Qt再也不会有难写的界面。

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧