时间的储存,通过预定义的两种结构来存储:
1.日历时间(Calendar Time)是通过time_t数据类型来表示的,用time_t表示的时间(日历时间)是从一个时间点(例如:1970年1月1日0时0分0秒)到此时的秒数。在time.h中,我们也可以看到time_t是一个长整型数:
#ifndef _TIME_T_DEFINED
typedef long time_t;
#define _TIME_T_DEFINED
#endif
2.在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:
struct tm {
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;
};
方法1.
/*获取当前时间 按字符串格式输出*/
#include <stdio.h>
#include <time.h>
void main()
{
time_t timep;
time (&timep); /*获取时间*/
printf("%s",ctime(&timep));
}
方法2.
/*获取当前时间,时、分、秒按自己需要显示*/
#include <stdio.h>
#include <time.h>
void main()
{
time_t timep;
struct tm *p;
time(&timep);
p=localtime(&timep); /*取得当地时间*/
printf("%d-%d-%d", (1900+p->tm_year),(1+p->tm_mon), p->tm_mday);
printf(" %d:%d:%d/n",p->tm_hour, p->tm_min, p->tm_sec);
}
方法3.
#include <stdio.h>
#include <windows.h>
void main()
{
SYSTEMTIME time;
char buf[256];
GetLocalTime(&time); //windows API函数
sprintf(buf, "%04d%02d%02d%02d%02d%02d", time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
printf("%s/n", buf);
}
方法4.
#include <time.h>
#include <stdio.h>
int main( void )
{
time_t t;
char tmp[64];
t = time(0); //得到当前时间的值
strftime( tmp, sizeof(tmp), "%Y/%m/%d %X %A 本年第%j天 %z",localtime(&t) ); //格式化一个时间字符串
puts( tmp );
return 0;
}
方法5. //C++
#include<iostream>
using namespace std;
void main()
{
system("time"); //可以修改系统的时间
}
方法6. //C++
#include<iostream>
#include<ctime>
using namespace std;
void main()
{
time_t now_time;
now_time = time(NULL);
cout<<now_time;
}