linux 如何打印stat函数返回的日期和时间[duplicate]

qjp7pelc  于 2023-06-21  发布在  Linux
关注(0)|答案(1)|浏览(103)

此问题已在此处有答案

How to print time_t in a specific format?(1个答案)
7年前关闭。
项目:

#include<stdio.h>
#include<fcntl.h>
#include<sys/stat.h>
#include<sys/types.h>
#include<unistd.h>
void main()
{
    struct stat stbuf;
    stat("alphabet",&stbuf);
    printf("Access time  = %d\n",stbuf.st_atime);
    printf("Modification time  = %d\n",stbuf.st_mtime);
    printf("Change time  = %d\n",stbuf.st_mtime);
}

上面的程序给出以下输出:
输出:

$ ./a.out 
Access time  = 1441619019
Modification time  = 1441618853
Change time  = 1441618853
$

它以秒为单位打印日期。在C语言中,如何将stat函数返回的时间打印为人类可读的格式?www.example.com _atime的返回类型stbuf.st为__time_t。
谢谢提前…

c2e8gylq

c2e8gylq1#

尝试使用time.h库中的char* ctime (const time_t * timer);函数。

#include <time.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>

int main(void)
{
    struct stat stbuf;
    stat("alphabet", &stbuf);
    printf("Access time  = %s\n", ctime(&stbuf.st_atime));
    printf("Modification time  = %s\n", ctime(&stbuf.st_mtime));
    printf("Change time  = %s\n", ctime(&stbuf.st_mtime));
}

它将给予以下结果:

$ ./test
Access time  = Mon Sep 07 15:23:31 2015

Modification time  = Mon Sep 07 15:23:31 2015

Change time  = Mon Sep 07 15:23:31 2015

相关问题