如何以d / m / y格式获取C中的当前时间?

时间:2017-01-26 11:22:22

标签: c date datetime

哪个函数可以用C语言中的 d / m / y 格式返回当前日期时间?

修改

这是我的代码:

#include <stdio.h>
#include <time.h>
int main()
{
    time_t tmp_time;
    struct tm * info;
    time ( &tmp_time );
    info = localtime ( &tmp_time ); 
    printf ( "%s", asctime (info) );
}

这让我回想起2017年1月26日星期四13:08:01,我想回复26/01/17或26/01/2017

3 个答案:

答案 0 :(得分:1)

像这样:

int main ()
{
  time_t rawtime;
  struct tm * currentTime;    
  time ( &rawtime );
  currentTime = localtime ( &rawtime );
  printf ( "%d/%d/%d", currentTime->tm_mday, currentTime->tm_mon+1, currentTime->tm_year+1900);

  return 0;
}

请注意,从0开始编入索引, tm 结构中的1900以来

答案 1 :(得分:1)

也许是这样:

#include <stdio.h>
#include <time.h>
int main()
{
    time_t t = time(0);
    if((time_t)-1 == t){
        perror(0);
        exit(1);
    }
    char buf[64];
    struct tm tdata;
    //I believe the 2 calls below should always succeed
    //in this context
    localtime_r(&t, &tdata);
    strftime(buf, sizeof(buf), "%d/%m/%y", &tdata);

    puts(buf);
}

localtime(3)联机帮助页显示strftime是推荐的方法,strftime(3)联机帮助页提供了类似的示例。

答案 2 :(得分:1)

你可以这样做

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

int main(void)
{
time_t mytime = time(NULL);
struct tm date = *localtime(&mytime);
printf("now: %d/%d/%d\n", date.tm_mday,date.tm_mon + 1,date.tm_year +1900 );
return 0;
}

如果你想让它成为一个函数发送日期作为参数并返回一个int数组保存日月和年