C语言实现:给定年、月、日、时、分、秒 6个数值,转换为相对于1970年1月1日的64位毫秒值
时间: 2023-07-10 14:08:11 浏览: 103
以下是C语言实现代码:
```c
#include <stdio.h>
#include <stdint.h>
#include <time.h>
int main() {
int year, month, day, hour, minute, second;
// 获取用户输入的年、月、日、时、分、秒
printf("请输入年:");
scanf("%d", &year);
printf("请输入月:");
scanf("%d", &month);
printf("请输入日:");
scanf("%d", &day);
printf("请输入时:");
scanf("%d", &hour);
printf("请输入分:");
scanf("%d", &minute);
printf("请输入秒:");
scanf("%d", &second);
// 使用time.h库中的gmtime函数将时间转换为struct tm结构体
struct tm tm_time = {0};
tm_time.tm_year = year - 1900;
tm_time.tm_mon = month - 1;
tm_time.tm_mday = day;
tm_time.tm_hour = hour;
tm_time.tm_min = minute;
tm_time.tm_sec = second;
// 使用time.h库中的mktime函数将struct tm结构体转换为时间戳
time_t epoch_time = mktime(&tm_time);
// 将时间戳转换为64位毫秒值
int64_t ms_time = (int64_t)epoch_time * 1000;
printf("相对于1970年1月1日的64位毫秒值为:%lld\n", ms_time);
return 0;
}
```
需要注意的是,这里使用了time.h库中的gmtime和mktime函数进行时间转换。其中,gmtime函数可以将时间转换为struct tm结构体,mktime函数则可以将struct tm结构体转换为时间戳。最后,将时间戳乘以1000即可得到64位毫秒值。
阅读全文