C截断HH:MM:SS来自ctime值,ctime

时间:2013-01-29 03:29:13

标签: c unix ctime

我有这个unix时间戳,当使用ctime转换时显示为Thu Mar 26 15:30:26 2007,但我只需要Thu Mar 26 2007

如何更改或截断以消除时间(HH:MM:SS)?

2 个答案:

答案 0 :(得分:1)

来自strptime()

的联机帮助页

以下示例演示了strptime()strftime()

的使用
   #include <stdio.h>
   #include <time.h>

   int main() {
           struct tm tm;
           char buf[255];

           strptime("2001-11-12 18:31:01", "%Y-%m-%d %H:%M:%S", &tm);
           strftime(buf, sizeof(buf), "%d %b %Y %H:%M", &tm);
           puts(buf);
           return 0;
   }

根据自己的需要进行调整。

答案 1 :(得分:1)

由于您的time_t值为#include <time.h> #include <stdio.h> int main(void) { time_t t = time(0); struct tm *lt = localtime(&t); char buffer[20]; strftime(buffer, sizeof(buffer), "%a %b %d %Y", lt); puts(buffer); return(0); } ,因此可以使用localtime()strftime()

ctime()

或者,如果您认为必须使用#include <time.h> #include <stdio.h> #include <string.h> int main(void) { time_t t = time(0); char buffer[20]; char *str = ctime(&t); memmove(&buffer[0], &str[0], 11); memmove(&buffer[11], &str[20], 4); buffer[15] = '\0'; puts(buffer); return(0); } ,那么:

{{1}}