C语言实现字符串格式时间转换时间戳
时间: 2024-12-16 14:31:59 浏览: 22
在C语言中,将字符串格式的时间转换为时间戳(Unix timestamp,即从1970年1月1日0点0分0秒开始计算到现在的秒数),你可以使用`strptime()`函数先解析字符串,然后再通过`time()`函数得到时间戳。这里是一个基本的示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define STRING_FORMAT "%Y-%m-%d %H:%M:%S" // 格式化字符串,例如 "2023-04-01 12:30:45"
int main() {
char time_string[] = "2023-04-01 12:30:45";
struct tm time_struct;
long int timestamp;
if (strptime(time_string, STRING_FORMAT, &time_struct) == nullptr) {
printf("Failed to parse the time string.\n");
return 1;
}
// 将struct tm转换为time_t
timestamp = mktime(&time_struct);
if (timestamp == -1) {
printf("Error occurred while converting time.\n");
return 1;
}
printf("Timestamp: %ld\n", timestamp);
return 0;
}
```
在这个例子中,`strptime()`函数用于根据给定的格式解析字符串,然后`mktime()`函数把`time_struct`转换成Unix时间戳。如果任何一个步骤失败,程序会输出错误信息。
阅读全文