时间戳是计算机系统中用于表示时间的一种方式,通常是一个数字或字符串,表示某个特定时间点相对于一个固定的起始时间点的时间差。时间戳通常用于记录事件的发生时间、处理任务的时间限制、计算时间差等需要用到时间的场景。
常见的时间戳有两种:Unix时间戳和Windows时间戳。
1、Unix时间戳表示的是自1970年1月1日0时0分0秒UTC(协调世界时)起至现在的秒数,以整数形式存储;
2、Windows时间戳则表示的是自1601年1月1日0时0分0秒UTC起至现在的100纳秒数,以整数形式存储。
两种时间戳的转换,涉及到起始时间的间隔时间和单位,1601年1月1日0时0分0秒UTC到1970年1月1日0时0分0秒UTC的间隔秒数为11644473600 秒,而一秒等于1000毫秒等于1000000微秒等于“10000000”个100纳秒,所以:
W = (U+11644473600)*10000000
U = (W - 11644473600*10000000)/10000000
这也是很多代码中出现11644473600和116444736000000000这两个数的原因
时间戳在计算机系统中的应用非常广泛,例如在操作系统中用于记录文件的创建、修改、访问时间;在数据库系统中用于记录数据的创建、修改、删除时间;在网络通信中用于记录数据包的发送、接收时间等等。