📅  最后修改于: 2023-12-03 15:11:37.196000             🧑  作者: Mango
纪元时间是指一个历法系统中的起始时间,通常用来作为计算特定历法下的日期和时间的基准。不同历法系统的纪元时间可能不同,常见的历法系统包括公历、农历和伊斯兰历等。在计算机科学中,纪元时间是计算机系统用来表达日期和时间的一种方式,通常使用Unix纪元时间或者Windows纪元时间。
Unix纪元时间指的是1970年1月1日00:00:00 UTC(协调世界时)这一时刻的时间戳,即以秒为单位的10位数字。Unix纪元时间由于使用广泛,因此成为了计算机科学领域中最常用的时间表示方法之一。
在Unix系统中,可以使用time函数获取当前时间的Unix纪元时间。
#include <time.h>
#include <stdio.h>
int main(void)
{
time_t t = time(NULL);
printf("Unix timestamp: %ld\n", (long) t);
return 0;
}
输出结果:
Unix timestamp: 1624303491
Windows纪元时间指的是1601年1月1日00:00:00 UTC这一时刻的时间戳,即以100纳秒为单位的17位数字。Windows纪元时间由于主要用于Windows系统中,因此在其他操作系统中使用较少。
在Windows系统中,可以使用GetSystemTimeAsFileTime函数获取当前时间的Windows纪元时间。
#include <windows.h>
#include <stdio.h>
int main(void)
{
FILETIME ft;
ULARGE_INTEGER uli;
GetSystemTimeAsFileTime(&ft);
uli.LowPart = ft.dwLowDateTime;
uli.HighPart = ft.dwHighDateTime;
printf("Windows timestamp: %llu\n", uli.QuadPart);
return 0;
}
输出结果:
Windows timestamp: 138196793447210358
纪元时间是计算机科学中常用的时间表示方式之一,通过时间戳的方式存储和计算日期和时间。Unix纪元时间和Windows纪元时间是常见的两种纪元时间,分别对应于Unix系统和Windows系统中的时间表示方式。在实际应用中需要根据具体情况选择使用哪一种纪元时间。