博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
时间处理 c++ 获取当前系统时间 1. 时间戳形式 2. char *形式[转]
阅读量:6162 次
发布时间:2019-06-21

本文共 2994 字,大约阅读时间需要 9 分钟。

1. 获取时间戳:

time_t rawtime;

time(&rawtime);  //结果是时间戳

2. 将时间戳转为 char* 类型的日期 Www Mmm dd hh:mm:ss yyyy

1 /* ctime example */ 2 #include 
3 #include
4 #include
5 6 using namespace std; 7 8 int main () 9 {10 time_t rawtime;11 12 time ( &rawtime );13 printf("%ld\n", &rawtime);14 printf ( "The current local time is: %s", ctime (&rawtime) );15 16 char * time = ctime(&rawtime);17 //ctime(&rawtime) : time_t/timestampe -> "Www Mmm dd hh:mm:ss yyyy" format18 cout<< time << endl;19 printf("%s", asctime(gmtime(&rawtime)));// asctime(gmtime(&rawtime)) = ctime(&rawtime);20 //here gmtime(&rawtime) : time_t(timpstampe) -> struct tm21 //here asctime(gmtime) : struct tm -> "Www Mmm dd hh:mm:ss yyyy" format 22 23 24 struct tm * ptm;25 ptm = gmtime(&rawtime);26 27 cout<<(ptm->tm_year + 1900)<<"year "<<(ptm->tm_mon + 1)<<"month "<<(ptm->tm_mday)<<"day "<<(ptm28 ->tm_hour)<<":"<<(ptm->tm_min)<<":"<<(ptm->tm_sec)<

 

结果:

134507764  //time ( &rawtime );  printf("%ld\n", &rawtime);

The current local time is: Mon Jul  9 15:17:03 2012  //printf ( "The current local time is: %s", ctime (&rawtime) );
Mon Jul  9 15:17:03 2012  //char * time = ctime(&rawtime);
Mon Jul  9 13:17:03 2012  //printf("%s", asctime(gmtime(&rawtime)));
2012year 7month 9day 13:17:3  //cout<<(ptm->tm_year + 1900)<<"year "<<(ptm->tm_mon + 1)<<"month "<<(ptm->tm_mday)<<"day "<<(ptm 28 ->tm_hour)<<":"<<(ptm->tm_min)          <<":"<<(ptm->tm_sec)<<endl;

3.

 

结果 输出 UTC 标准时间 12:49  //时间协调时间

********************

关于时间 定义的 struct tm的介绍:

 
type

struct tm

<ctime>
Time structure
Structure containing a calendar date and time broken down into its components.
The structure contains nine members of type 
int, which are (in any order):
1 2 3 4 5 6 7 8 9
int tm_sec;int tm_min;int tm_hour;int tm_mday;int tm_mon;int tm_year;int tm_wday;int tm_yday;int tm_isdst;
而直接存储年月日的是一个结构:
struct tm
{
    int tm_sec;  /*秒,正常范围0-59, 但允许至61*/
    int tm_min;  /*分钟,0-59*/
    int tm_hour; /*小时, 0-23*/
    int tm_mday; /*日,即一个月中的第几天,1-31*/
    int tm_mon;  /*月, 从一月算起,0-11*/  1+p->tm_mon;
    int tm_year;  /*年, 从1900至今已经多少年*/ 1900+ p->tm_year;
    int tm_wday; /*星期,一周中的第几天, 从星期日算起,0-6*/
    int tm_yday; /*从今年1月1日到目前的天数,范围0-365*/
    int tm_isdst; /*日光节约时间的旗标*/
};

需要特别注意的是,年份是从1900年起至今多少年,而不是直接存储如2011年,月份从0开始的,0表示一月星期也是从0开始的, 0表示星期日,1表示星期一。

The meaning of each is:
Member Meaning Range
tm_sec seconds after the minute 0-61*
tm_min minutes after the hour 0-59
tm_hour hours since midnight 0-23
tm_mday day of the month 1-31
tm_mon months since January 0-11real month = tm_mon + 1
tm_year years since 1900  1900+tm_year
tm_wday days since Sunday 0-6
tm_yday days since January 1 0-365
tm_isdst Daylight Saving Time flag  
The 
Daylight Saving Time flag (
tm_isdst) is greater than zero if Daylight Saving Time is in effect, zero if Daylight Saving Time is not in effect, and less than zero if the information is not available.
tm_sec is generally 0-59. Extra range to accommodate for leap seconds in certain systems.

转载地址:http://hmhfa.baihongyu.com/

你可能感兴趣的文章
win2008 server_R2 自动关机 解决
查看>>
我的友情链接
查看>>
在C#调用C++的DLL简析(二)—— 生成托管dll
查看>>
Linux macos 常用终端操作
查看>>
企业网络的管理思路
查看>>
Linux磁盘分区与挂载
查看>>
J2se学习笔记一
查看>>
DNS视图及日志系统
查看>>
老李分享:Android性能优化之内存泄漏 3
查看>>
mysql命令
查看>>
来自极客标签10款最新设计素材-系列七
查看>>
极客技术专题【009期】:web技术开发小技巧
查看>>
PHP 简单计算器代码实现
查看>>
正则表达式的知识普及
查看>>
docker使用笔记
查看>>
华为eNSP模拟器上实现FTP服务
查看>>
【全球AI人才排行榜】美国第一,中国仅排名第7
查看>>
微信小程序输入框input
查看>>
MySql字符串函数使用技巧
查看>>
Doc2Vec,Word2Vec文本相似度 初体验。
查看>>