龙空技术网

Qt - 获取系统当前时间

C加加Qt技术开发老杰 207

前言:

此时各位老铁们对“c语言运行时间怎么输出”大体比较关注,朋友们都需要学习一些“c语言运行时间怎么输出”的相关知识。那么小编同时在网摘上网罗了一些关于“c语言运行时间怎么输出””的相关文章,希望同学们能喜欢,大家一起来了解一下吧!

简介

Qt获取系统当前时间的四种方法(一般使用第一种或者第二种)

方法一:获取带日期的时间,使用QDateTime类

QDateTime current_date_time =QDateTime::currentDateTime();QString current_date =current_date_time.toString("yyyy.MM.dd hh:mm:ss.zzz ddd");//current_date字符串结果为"2016.05.20 12:17:01.445 周五"

其中时间的显示格式可灵活配置,此处简单说明本实例中用到的部分:

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

注:详细配置格式内容较多,有需要的请自行查看Qt Assistant中关于函数QString QDateTime::toString ( const QString & format ) const的说明

Qt资料领取(视频教程+文档+代码+项目实战)

方法二:使用QTime类

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();     //当前的毫秒

当然QTime也可以像QDateTime::toString那样直接输出固定格式的字符串,使用方法与QDateTime::toString类似,

也可参考Qt Assistant中关于函数QString QTime::toString ( const QString & format ) const的说明

方法三:使用标准的C语言函数localtime(精确到秒)

注:需要包含time.h头文件

1、使用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 时区名称,如果不能得到时区名称则返回空字符。%% 百分号

2、使用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”
方法四:使用Windows API 函数GetLocalTime(精确到毫秒)
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); //输出为“2016/5/16 10:13:23.234”

其中SYSTEMTIME结构体定义如下

typedef struct _SYSTEMTIME {  WORD wYear;//年  WORD wMonth;//月  WORD wDayOfWeek;//星期,0为星期日,1为星期一,2为星期二……  WORD wDay;//日  WORD wHour;//时  WORD wMinute;//分  WORD wSecond;//秒  WORD wMilliseconds;//毫秒} SYSTEMTIME,*PSYSTEMTIME;

文章转自博客园(Citrusliu):

Qt资料领取(视频教程+文档+代码+项目实战)

标签: #c语言运行时间怎么输出