Qt读取本地系统时间的几种方式小结

 更新时间:2024年03月22日 11:04:59   作者:寒听雪落  
这篇文章主要介绍了Qt读取本地系统时间的几种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一,使用Windows API函数GetLocalTime(精确到毫秒)

typedef struct _SYSTEMTIME   //SYSTEMTIME结构体定义

{
  WORD wYear;//年
  WORD wMonth;//月
  WORD wDayOfWeek;//星期,0为星期日,1为星期一,2为星期二……
  WORD wDay;//日
  WORD wHour;//时
  WORD wMinute;//分
  WORD wSecond;//秒
  WORD wMilliseconds;//毫秒
} SYSTEMTIME,*PSYSTEMTIME;
SYSTEMTIME sys;
GetLocalTime( &sys );
printf("%4d/%2d/%2d %2d:%2d:%2d.%3d\n",  
sys.wYear,sys.wMonth,sys.wDay,sys.wHour,sys.wMinute,sys.wSecond,sys.wMilliseconds); 
//输出为“2024/3/16 10:13:23.234”

二,使用C语言函数localtime

1,使用asctime()进行格式转换

/*得到系统时间*/
time_t cur;
struct daytime;
cur = time((time_t*)NULL);
time(&cur);       
 
/*时间转换*/
daytime = *localtime(&cur);     
printf("%s", asctime(&daytime));
//输出为“Wed Feb 13 15:46:11 2016”

2,使用strftime()进行格式转换

time_t t = time( 0 );
char tmp[64];
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) );
printf("%s\n",tmp);
//输出为“2016/05/20 13:11:57 Friday 本年第141天 中国标准时间”
其中函数size_t strftime(char *strDest,size_t maxsize,const char *format,const  struct tm *timeptr)

功能为根据format指向字符串中格式命令把timeptr中保存的时间信息放在strDest指向的字符串中,最多向strDest中存放maxsize个字符。该函数返回向strDest指向的字符串中放置的字符数。

format参数说明:
%a 星期几的简写
%A 星期几的全称
%b 月份的简写
%B 月份的全称
%c 标准的日期的时间串
%C 年份的前两位数字
%d 十进制表示的每月的第几天
%D 月/天/年
%e 在两字符域中,十进制表示的每月的第几天
%F 年-月-日
%g 年份的后两位数字,使用基于周的年
%G 年份,使用基于周的年
%h 简写的月份名
%H 24小时制的小时
%I 12小时制的小时
%j 十进制表示的每年的第几天
%m 十进制表示的月份
%M 十时制表示的分钟数
%n 新行符
%p 本地的AM或PM的等价显示
%r 12小时的时间
%R 显示小时和分钟:hh:mm
%S 十进制的秒数
%t 水平制表符
%T 显示时分秒:hh:mm:ss
%u 每周的第几天,星期一为第一天 (值从1到7,星期一为1)
%U 第年的第几周,把星期日作为第一天(值从0到53)
%V 每年的第几周,使用基于周的年
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串
%X 标准的时间串
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。
%% 百分号

三,使用QDateTime获取带日期的时间

QDateTime current_date_time =QDateTime::currentDateTime();
QString current_date =current_date_time.toString("yyyy.MM.dd hh:mm:ss.zzz ddd");

yyyy表示年;MM表示月;dd表示日; hh表示小时;mm表示分;ss表示秒;zzz表示毫秒;ddd表示周几

connect(&time,SIGNAL(timeout()),this,SLOT(onTimeOut()));
time.start(1000);
 
void MainWindow::onTimeOut()
{
    // 获取系统当前时间
    QDateTime dateTime = QDateTime::currentDateTime();
    sdateTimer = dateTime.toString("yyyy-MM-dd HH:mm:ss.zzz");
    ui->label->setText(sdateTimer);
    // 显示的内容
    ui->lcdNumber->display(sdateTimer);
}

四,使用QTime获取本地时间

QTime可以像QDateTime::toString那样直接输出固定格式的字符串。

QTime current_time =QTime::currentTime();
int hour = current_time.hour();     //当前的小时
int minute = current_time.minute(); //当前的分
int second = current_time.second(); //当前的秒
int msec = current_time.msec();     //当前的毫秒

相关文章

  • WPF实现动态加载图片浏览器

    WPF实现动态加载图片浏览器

    这篇文章主要为大家详细介绍了一种 WPF + Prism 实现动态分页加载图片的方法,其中结合了ScrollViewer滚动条触底检测,实现边滚动边加载的流畅体验,下面就跟随小编一起学习一下吧
    2025-04-04
  • C#对Xamarin框架进行数据绑定

    C#对Xamarin框架进行数据绑定

    这篇文章介绍了C#对Xamarin框架进行数据绑定,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • C# 开发日志本地化工具

    C# 开发日志本地化工具

    这篇文章主要介绍了C# 开发日志本地化工具的步骤,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-02-02
  • C#中生成DLL及其事件的处理

    C#中生成DLL及其事件的处理

    在C#中,创建动态链接库是一个常见的任务,本文主要介绍了C#中生成DLL及其事件的处理,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • Unity实现3D射箭小游戏

    Unity实现3D射箭小游戏

    这篇文章主要为大家详细介绍了Unity实现3D射箭小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • C#利用Spire.PDF for .NET实现将PDF转换为SVG

    C#利用Spire.PDF for .NET实现将PDF转换为SVG

    在现代应用开发中,PDF 是最常用的文档格式之一,然而当需要将 PDF 内容集成到网页、矢量图编辑器或者可缩放图形环境中时,SVG 格式往往更具优势,下面我们就来看看如何使用C#实现将PDF转换为SVG吧
    2026-01-01
  • 通过C#调用cmd来修改服务启动类型

    通过C#调用cmd来修改服务启动类型

    可以使用System.ServiceProcess.ServiceController这个类允许连接到正在运行或者已停止的服务、对其进行操作或获取有关它的信息但是这个类并没有提供修改服务启动类型的方法,可以通过C#调用cmd来修改
    2012-12-12
  • C# 一个WCF简单实例

    C# 一个WCF简单实例

    以订票为例简单应用wcf程序,需要的朋友可以参考下
    2012-10-10
  • C#线性渐变画刷LinearGradientBrush用法实例

    C#线性渐变画刷LinearGradientBrush用法实例

    这篇文章主要介绍了C#线性渐变画刷LinearGradientBrush用法,实例分析了线性渐变画刷LinearGradientBrush的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • 使用C#调用系统API实现内存注入的代码

    使用C#调用系统API实现内存注入的代码

    使用C#调用系统API实现内存注入的代码,学习c#的朋友可以参考下。
    2011-06-06

最新评论