使用C语言实现将日期和时间转换为时间戳的示例代码:
c复制代码
#include <stdio.h> | |
#include <time.h> | |
// 将日期和时间转换为时间戳 | |
time_t date_to_timestamp(char* date_str, time_t* timestamp) { | |
struct tm tm_time = {0}; | |
strptime(date_str, "%Y-%m-%d", &tm_time); | |
time_t time_seconds = mktime(&tm_time); | |
*timestamp = time_seconds; | |
return time_seconds; | |
} | |
// 将时间戳转换为日期和时间 | |
void timestamp_to_date_and_time(time_t timestamp, char* date_str, time_t* date_time) { | |
struct tm tm_time = {0}; | |
time_t time_seconds = mktime(&tm_time); | |
struct tm* tm_local = localtime(&time_seconds); | |
strftime(date_str, sizeof(date_str), "%Y-%m-%d", tm_local); | |
*date_time = mktime(&tm_time); | |
} | |
int main() { | |
time_t timestamp_before; | |
time_t timestamp_after; | |
char date_str[20]; | |
time_t date_time; | |
// 将日期和时间转换为时间戳 | |
timestamp_before = date_to_timestamp("2022-03-13 10:30:00", ×tamp_after); | |
// 将时间戳转换为日期和时间 | |
timestamp_to_date_and_time(timestamp_after, date_str, &date_time); | |
// 输出结果 | |
printf("转换前时间戳: %ld\n", timestamp_before); | |
printf("转换后日期和时间: %s\n", date_str); | |
printf("转换后日期和时间: %ld\n", date_time); | |
return 0; | |
} |
在这个示例代码中,我们首先定义了两个函数date_to_timestamp和timestamp_to_date_and_time,分
date_to_timestamp函数将日期和时间字符串解析为结构体tm,然后使用mktime函数将其转换为时间戳。timestamp_to_date_and_time函数将时间戳转换为本地时间,并将其解析为结构体tm。
在main函数中,我们将日期和时间转换为时间戳,并将时间戳转换为日期和时间。然后输出结果。
请注意,在实际应用中,我们可能需要从日期和时间戳中提取更多信息,例如时区、日期格式、小时数、分钟数等等。这可以通过更详细的日期和时间解析和处理来实现。