asctime时间输出错误

时间:2013-03-07 06:55:40

标签: c time

#include<time.h>
#include<stdio.h>

int main(void)
 {
 time_t timer;
 int i;
 char mon[4];
 char *ti=0;
 ti=asctime(localtime(&timer));
 ti=ti+4;
 for(i=0;i<3;i++)
 {
  mon[i]=*ti++;

 }
  mon[3]='\0';

 timer=time(NULL);
  printf("The current time is %s\n",mon);
  return 0;
 }

嗨,有人可以告诉为什么asctime有时会返回错误的时间指针。我使用'mon'来存储asctime字符串中的月份,当在控制台上打印它时,它有时显示'Mar',有时显示其他月份。< / p>

1 个答案:

答案 0 :(得分:2)

您正在使用timer而未初始化它。在致电localtime之前,请尝试:

time(&timer);

此外,更简单的方法是:

ctime(&timer);