当前位置: 技术问答>linux和unix
在linux下,想得到关于 “年-月-日 小时:分钟:秒”的字符串 ----阿菜
来源: 互联网 发布时间:2014-11-26
本文导语: 就是 “0000-00-00 00:00:00”到“9999-12-31 23:59:59”的一个串 我做了如下的尝试: char time_str[20] struct tm *pt; pt=gtime(time()); sprintf(time_str,"%d-%d-%d %d:%d:%d",pt->year,pt->mon,pt->mday,pt->hour,pt->min,pt->sec); 但是不好用。 我...
就是 “0000-00-00 00:00:00”到“9999-12-31 23:59:59”的一个串
我做了如下的尝试:
char time_str[20]
struct tm *pt;
pt=gtime(time());
sprintf(time_str,"%d-%d-%d %d:%d:%d",pt->year,pt->mon,pt->mday,pt->hour,pt->min,pt->sec);
但是不好用。
我错在哪里?
谁又什么别的办法吗?
----阿菜
我做了如下的尝试:
char time_str[20]
struct tm *pt;
pt=gtime(time());
sprintf(time_str,"%d-%d-%d %d:%d:%d",pt->year,pt->mon,pt->mday,pt->hour,pt->min,pt->sec);
但是不好用。
我错在哪里?
谁又什么别的办法吗?
----阿菜
|
struct tm *tp=NULL;
time_t t;
static char str[16];
time(&t);
tp = (struct tm *)localtime(&t);
sprintf(DateStr,"%04d-%02d-%02d %02d:%02d:%02d",
tp->tm_year+1900,tp->tm_mon+1,tp->tm_mday,tp->tm_hour,tp->tm_min,tp->tm_sec);
time_t t;
static char str[16];
time(&t);
tp = (struct tm *)localtime(&t);
sprintf(DateStr,"%04d-%02d-%02d %02d:%02d:%02d",
tp->tm_year+1900,tp->tm_mon+1,tp->tm_mday,tp->tm_hour,tp->tm_min,tp->tm_sec);
|
改成下面的代码就行了:
char time_str[20]
struct tm *pt;
time_t curtime;
curtime=time(NULL);
pt=gtime(&curtime);
sprintf(time_str,"%d-%d-%d %d:%d:%d",pt->year,pt->mon,pt->mday,pt->hour,pt->min,pt->sec);
注意:
1、time()调用如果是取当前时间要带参数NULL
2、gtime()调用的参数为const time_t型的指针。
char time_str[20]
struct tm *pt;
time_t curtime;
curtime=time(NULL);
pt=gtime(&curtime);
sprintf(time_str,"%d-%d-%d %d:%d:%d",pt->year,pt->mon,pt->mday,pt->hour,pt->min,pt->sec);
注意:
1、time()调用如果是取当前时间要带参数NULL
2、gtime()调用的参数为const time_t型的指针。
|
year要加1900
mon要加1
然后还要注意地区和时间问题
localtime可以得到当前地区时区设置的值。
mon要加1
然后还要注意地区和时间问题
localtime可以得到当前地区时区设置的值。