世界时(UT)是根据地球自转周期确定的时间。 1s是全年日平均长度的1/86400。由于地球绕太阳运行的轨道不是圆形的,地球与太阳之间的距离是不固定的,导致太阳绕地球的相对周期不等于地球自转周期。通过校正由此产生的时差,称为“平均太阳时”。根据国际协定,英国格林威治所在的子午线(也称为本初子午线)的平均太阳时被定义为零级世界时(UT0)。因为地球的自转轴会轻微移动(每年移动几厘米),将极移效应校正后的时间称为一流世界时间UT1。一流世界时间UT1也有无法解释的季节周期性变化,如果这是修正后,会得到更统一的二等时间。世界时UT2。
原子时间
原子钟是利用铯原子非常规则的振荡周期开发的。第二原子时间长度(TAI)定义为铯133原子能级跃迁辐射的9192631770个周期的持续时间。原子钟的精确度在每百万年 1 秒以内。在天文、航海、航空航天等对时间精度要求较高的领域发挥了巨大的作用。
世界标准时间
Coordinatde Universal Time (UTC) 以国际原子时为基础,以原子时间秒为单位,在时间上尽可能接近格林威治标准时间 (GMT),通过不规则添加闰秒来抵消慢速的影响地球自转确保 UTC 与世界时之间的差异(UT1)不超过 0.9 秒。
纪元时间
Unix epoch(Unix 时间、POSIX 时间、Unix 时间戳),是一种时间表示,定义为从格林威治标准时间 1970 年 1 月 1 日 00:00:00 到现在的总秒数。 Unix 时间戳不仅用于 Unix 系统、类 Unix 系统,还用于许多其他操作系统。
2038 问题
32 位操作系统将纪元日期存储为带符号的 32 位整数,此类系统的 Unix 时间戳可以使用到 01/19/2038 03:14:07 GMT(二进制:01111111 11111111 11111111 11111111).一秒钟后18位时间戳在线转换18位时间戳在线转换,二进制数会变成 10000000 00000000 00000000 00000000,出现溢出错误,导致系统将时间误读为 1901 年 12 月 13 日 20:45:52。这很可能会导致软件故障,或者甚至系统崩溃(称为 2038 年问题或 Y2038)。
使用 64 位二进制数表示时间的系统(格林威治标准时间 12 月 4 日 15:30:08 至 292,277,026,596 GMT)不会遇到此类溢出问题。
蟒蛇时间
时间格式在线转换:
时区转换
国际时区转换在线计算器
世界时区划分时差查询
Python 时间文档:
python获取当前时间
>> import time;
>> time.time()
1612661504.1785676
>> time.localtime()
time.struct_time(tm_year=2021, tm_mon=2, tm_mday=7, tm_hour=11, tm_min=23, tm_sec=20, tm_wday=6, tm_yday=38, tm_isdst=0)
将标准时间转换为纪元时间
本文将标准时间定义为 ISO 8601 格式时间:YYYY-MM-DD hh:mm:ss.mil
转换为Unix时间戳的两种方式:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>> import calendar, time
>> date_time = time.strptime('2000-01-01 12:34:00', '%Y-%m-%d %H:%M:%S')
>> calendar.timegm(date_time)
946730040
>> time.mktime(date_time)
946701240.0
纪元时间转换为标准时间
>> import time
>> epoch_time = 946730040
>> time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime(epoch_time))
'Sat, 01 Jan 2000 20:34:00'
>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(epoch_time))
'2000-01-01 20:34:00'
>> time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(epoch_time))
'2000-01-01 12:34:00'
>> import datetime
>>> datetime.datetime.fromtimestamp(epoch_time)
datetime.datetime(2000, 1, 1, 20, 34)
>>> datetime.datetime.utcfromtimestamp(epoch_time)
datetime.datetime(2000, 1, 1, 12, 34)
python 日期时间
获取当前时间(当地时间)
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import datetime
now_time = datetime.datetime.now()
print(now_time.strftime("%Y-%m-%d %H:%M:%S"))
print(now_time.strftime("%A"))
print(now_time.strftime("%w"))
出来:
2020-09-28 14:15:24
Monday
1
时间格式
import datetime
timestr = "2020-10-01 18:30:00"
print(datetime.datetime.strptime(timestr, "%Y-%m-%d %H:%M:%S"))
出来:
2020-10-01 18:30:00
时间增量
timedelta表示一个时间段,可用于时间计算。
语法:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
import datetime
now_time = datetime.datetime.now()
# 当前时间加一天
now_time + datetime.timedelta(days=1)
# 当前时间减一周
now_time + datetime.timedelta(weeks=-1)