C语言实现时间转换为NT时间戳:详细代码及使用方法
NT时间戳指的是Windows系统中使用的时间戳,它表示的是自1601年1月1日0时0分0秒到当前时间的100纳秒数。
以下是一个将输入时间转换为NT时间戳的示例代码:
#include <stdio.h>
#include <windows.h>
int main()
{
SYSTEMTIME st;
FILETIME ft;
ULARGE_INTEGER uli;
// 获取输入时间
printf("请输入时间(格式:YYYY-MM-DD HH:MM:SS):");
scanf("%d-%d-%d %d:%d:%d", &st.wYear, &st.wMonth, &st.wDay, &st.wHour, &st.wMinute, &st.wSecond);
// 将输入时间转换为文件时间
SystemTimeToFileTime(&st, &ft);
// 将文件时间转换为64位整数
uli.LowPart = ft.dwLowDateTime;
uli.HighPart = ft.dwHighDateTime;
// 计算NT时间戳
ULONGLONG nt_time = uli.QuadPart / 10000000ULL - 11644473600ULL;
// 输出NT时间戳
printf("NT时间戳:%llu\n", nt_time);
return 0;
}
使用方法:运行程序后,按照提示输入要转换的时间,格式为'YYYY-MM-DD HH:MM:SS',程序会输出对应的NT时间戳。例如,输入'2021-07-22 10:30:00',输出结果为'13299072700'。
原文地址: https://www.cveoy.top/t/topic/oc0N 著作权归作者所有。请勿转载和采集!