协调世界时
又称世界统一时间、世界标准时间、国际协调时间,简称UTC。
在计算机中,时间实际上是用数字表示的。我们把1970年1月1日 00:00:00 UTC+00:00时区的时刻称为epoch time,记为0(1970年以前的时间timestamp为负数),当前时间就是相对于epoch time的秒数,称为timestamp。
你可以认为:
timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00
对应的北京时间是:
timestamp = 0 = 1970-1-1 08:00:00 UTC+8:00
可见timestamp的值与时区毫无关系,因为timestamp一旦确定,其UTC时间就确定了,转换到任意时区的时间也是完全确定的,这就是为什么计算机存储的当前时间是以timestamp表示的,因为全球各地的计算机在任意时刻的timestamp都是完全相同的(假定时间已校准)。
闰秒 GPS时间
闰秒是对协调世界时(UTC)作出加一秒或减一秒的调整。由于国际原子时的准确度为每日数纳秒,而世界时的准确度为每日数毫秒,所以一种称为协调世界时的折中时标于1972年面世。为确保协调世界时与世界时相差不会超过0.9秒,在有需要的情况下会在协调世界时内加上正或负一整秒。这一技术措施就称为闰秒(leap second)。
GPS闰秒,GPS时间系统,简称GPST,属于原子时系统,秒长即为原子时秒长。
为了精密导航和测量的需要,GPS建立了专用的时间系统,改系统可简写为GPST,由GPS主控站的原子钟控制,GPST属于原子时系统,其秒长与原子时相同,但与国际原子时具有不同的原点,规定GPST与协调时的时刻于1980年1月6日0时相一致,其后随着时间的积累,两者之间的差别将表现为妙的整倍数。自1980年至今(2020 05 22)已经正闰秒18次。UTC时间和GPS时间差18秒。UTC-GPST≈-18S,也就是GPS时间比UTC时间快18秒。
所以,将INS-D 的GPS时间转换成UTC时间的时候要减去18s
Python获取秒级时间戳与毫秒级时间戳
1、获取秒级时间戳与毫秒级时间戳、微秒级时间戳
import time
import datetime
t = time.time()
print (t) #原始时间数据
print (int(t)) #秒级时间戳
print (int(round(t * 1000))) #毫秒级时间戳
print (int(round(t * 1000000))) #微秒级时间戳
返回
1589869069.5608766 #原始时间数据
1589869069 #秒级时间戳,10位
1589869069561 #毫秒级时间戳,13位
1589869069560876 #微秒级时间戳,16位
2、获取当前日期时间
dt = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
dt_ms = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') # 含微秒的日期时间,来源 比特量化
print(dt)
print(dt_ms)
返回
2020-05-19 14:19:07
2020-05-19 14:19:51.023392
3、将日期转为秒级时间戳
dt = '2020-05-19 14:19:07'
ts = int(time.mktime(time.strptime(dt, "%Y-%m-%d %H:%M:%S")))
print (ts)
返回
1589869147
4、将秒级时间戳转为日期
ts = 1589869147
dt = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(ts))
print(dt)
返回
2020-05-19 14:19:07
5、时间格式转成另一种时间格式
dt = '05/02/2020 01:00'
dt_new = datetime.datetime.strptime(dt, '%m/%d/%Y %H:%M').strftime('%Y-%m-%d %H:%M:%S')
print(dt_new)
返回
2020-05-02 01:00:00
6、转结构体时间struct_time
ta_dt = time.strptime("2018-09-06 21:54:46", '%Y-%m-%d %H:%M:%S') #日期时间转结构体
ta_ms = time.localtime(1486188476) #时间戳转结构体,注意时间戳要求为int,来源 比特量化
print(ta_dt)
print(ta_ms)
返回
time.struct_time(tm_year=2018, tm_mon=9, tm_mday=6, tm_hour=21, tm_min=54, tm_sec=46, tm_wday=3, tm_yday=249, tm_isdst=-1)
time.struct_time(tm_year=2017, tm_mon=2, tm_mday=4, tm_hour=14, tm_min=7, tm_sec=56, tm_wday=5, tm_yday=35,