本文转自百度百科
说明:此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间。
用 法: struct tm *localtime(const time_t *clock);
返回值:返回指向tm 结构体的指针.tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.
#include <stddef.h>
#include <time.h>
int main(void)
{
time_t timer;//time_t就是long int 类型
struct tm *tblock;
timer = time(NULL);
tblock = localtime(&timer);
printf("Local time is: %s\n",asctime(tblock)); return 0;
}
执行结果: Local time is: Mon Feb 16 11:29:26 2009
上面的例子用了asctime函数,下面这个例子不使用这个函数一样能获取系统当前时间。需要注意的是年份加上1900,月份加上1。
#include<time.h>
#include<stdio.h>
int main()
{
struct tm *t;
time_t tt;
time(&tt);
t=localtime(&tt);
printf("%4d年%02d月%02d日 %02d:%02d:%02d\n",t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
return 0;
}
或者
#include <iostream> #include <ctime> using namespace std; int main() { time_t t; struct tm *pnow = NULL; t = time(&t); pnow = localtime(&t); cout << pnow->tm_year + 1900 << "年" << pnow->tm_mon + 1 <<"月" << pnow->tm_mday <<"日"<<endl; cout << pnow->tm_hour <<"时"<< pnow->tm_min <<"分"<< pnow->tm_sec <<"秒"<<endl<<endl; //或者 cout << asctime(pnow) <<endl; return 0; }