c语言unix时间戳转换成时间
时间: 2024-09-09 15:12:21 浏览: 52
C语言中时间戳转换成时间字符串的方法
在C语言中,Unix时间戳通常表示从1970年1月1日(UTC/GMT)午夜开始到现在的秒数,包括闰秒。将这种整数值转换为人类可读的时间形式,可以使用`ctime`库中的函数如`localtime`或`gmtime`配合`strftime`函数。
下面是一个简单的示例,说明如何将Unix时间戳转换为本地日期和时间:
```c
#include <stdio.h>
#include <time.h>
void convert_timestamp_to_local_time(long long timestamp) {
struct tm *time_info;
char time_string[80];
// 转换为struct tm结构体
time_t raw_time = timestamp;
time_info = localtime(&raw_time);
// 格式化时间字符串
strftime(time_string, sizeof(time_string), "%Y-%m-%d %H:%M:%S", time_info);
printf("Local time from Unix timestamp: %s\n", time_string);
}
int main() {
long long timestamp = 1684518477; // 例如今天的Unix时间戳
convert_timestamp_to_local_time(timestamp);
return 0;
}
```
在这个例子中,我们首先获取给定时间戳对应的`time_t`值,然后使用`localtime`将其转换为本地时间格式,最后通过`strftime`将这个时间和格式化字符串结合。
阅读全文