将C语言中的时间戳转换成时间字符串,需要用到几个相关的C库函数。下面是操作步骤和示例代码。
时间戳
首先简单介绍一下时间戳。时间戳是指从1970年1月1日00:00:00到指定时间的总秒数。在C语言中可以用time()函数获取当前时刻的时间戳,返回值是一个time_t类型的整数。
localtime()函数
在将时间戳转换成时间字符串的过程中,需要用到localtime()函数。该函数可以将一个time_t类型的时间戳转换成本地时间。函数原型如下:
struct tm* localtime(const time_t* time);
该函数的返回值是一个指向struct tm类型的指针。struct tm结构体包含了年、月、日、时、分、秒等详细的时间信息。
strftime()函数
在将时间戳转换成时间字符串的过程中,需要用到strftime()函数。该函数可以将一个struct tm类型的时间信息转换成指定格式的时间字符串。函数原型如下:
size_t strftime(char* str, size_t maxsize, const char* format, const struct tm* timeptr);
- str:指向存储转换后字符串的字符数组。
- maxsize:存储空间的大小。
- format:指定转换的格式,支持的格式符有:%a、%A、%b、%B、%c、%C、%d、%D、%e、%F、%g、%G、%h、%H、%I、%j、%m、%M、%n、%p、%r、%R、%s、%S、%t、%T、%u、%U、%V、%w、%W、%x、%X、%y、%Y、%z、%Z。
- timeptr:指向struct tm类型的指针,包含了需要转换的时间信息。
下面是示例代码:
#include <stdio.h>
#include <time.h>
int main() {
// time_t timestamp = 1618911799; // 2021-04-20 10:36:39
time_t timestamp = time(NULL); // 获取当前时间戳
struct tm* timeinfo = localtime(×tamp);
char timestr[80];
strftime(timestr, 80, "%Y-%m-%d %H:%M:%S", timeinfo);
printf("时间戳 %ld 转换成的时间字符串为:%s\n", timestamp, timestr);
return 0;
}
输出结果:
时间戳 1618911811 转换成的时间字符串为:2021-04-20 10:36:51
另一个示例代码:
#include <stdio.h>
#include <time.h>
int main() {
time_t timestamp = 1618911799; // 2021-04-20 10:36:39
struct tm* timeinfo = localtime(×tamp);
char timestr[80];
strftime(timestr, 80, "%Y年%m月%d日 %H时%M分%S秒", timeinfo);
printf("时间戳 %ld 转换成的时间字符串为:%s\n", timestamp, timestr);
return 0;
}
输出结果:
时间戳 1618911799 转换成的时间字符串为:2021年04月20日 10时36分39秒
希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言中时间戳转换成时间字符串的方法 - Python技术站