欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python时间访问和转换库time,含时间戳和时间互转

程序员文章站 2024-02-01 17:32:04
术语、时间表示转换、时间戳互转、睡眠、解析时间字符串...

术语

epoch:时间开始点 ,即1970年1月1日00:00:00。

import time

print(time.gmtime(0))  # epoch,时间开始点,1970年1月1日00:00:00
# time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)

seconds since the epoch:自纪元以来的秒数,自国际标准时间 1970年1月1日00:00:00 以来经过的总秒数,不包括闰秒。

import time

print(time.time())  # 1594792587.5603817

UTC:Universal Coordinated Time,协调世界时,世界标准时间,格林尼治标准时间,或GMT

GMT:同上,世界标准时间。




初试

time.strftime(format, p_tuple=None):格式化时间,format见具体格式,p_tuple传入 time.struct_time

import time

print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S"))
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=15, tm_hour=14, tm_min=18, tm_sec=50, tm_wday=2, tm_yday=197, tm_isdst=0)
# 2020-07-15 14:18:50
# 2020-07-15 14:18:50




时间表示转换

使用
时间开始点 世界标准时间 gmtime()
时间开始点 本地时间 localtime()
世界标准时间 自纪元以来的秒数 calendar.timegm()
本地时间 自纪元以来的秒数 mktime()
import time
import calendar

print(time.gmtime())
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime()))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=15, tm_hour=6, tm_min=31, tm_sec=45, tm_wday=2, tm_yday=197, tm_isdst=0)
# 2020-07-15 06:31:45

print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=15, tm_hour=14, tm_min=31, tm_sec=45, tm_wday=2, tm_yday=197, tm_isdst=0)
# 2020-07-15 14:31:45

print(calendar.timegm(time.gmtime()))  # 时间元组的时间戳
# 1594794705
print(time.mktime(time.localtime()))  # localtime()的反函数
# 1594794705.0
print(time.time())
# 1594794705.428962




时间戳互转

时间戳世界标准时间本地时间

import time

timestamp = 1594440000
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(timestamp)))  # 时间戳转世界标准时间
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp)))  # 时间戳转本地时间
# 2020-07-11 04:00:00
# 2020-07-11 12:00:00

世界标准时间本地时间时间戳

import time
import calendar

print(calendar.timegm(time.gmtime()))  # 世界标准时间转时间戳
print(calendar.timegm(time.localtime()))  # 本地时间转时间戳
# 1594411200
# 1594440000




JavaScript获取时间戳

console.log((new Date).getTime())

对应Python时间戳

import time
import execjs

print(str(time.time()).replace('.', ''))    # 1594800227044
print(execjs.eval("(new Date).getTime()"))  # 1594800227096

封装一下

import time


def timestamp() -> str:
    '''Python版本的时间戳,对应JavaScript的(new Date).getTime()'''
    return str(time.time()).replace('.', '')




睡眠

sleep(secs)

import time

for i in range(10):
    print(i)
    time.sleep(1)

间隔每秒输出
Python时间访问和转换库time,含时间戳和时间互转




解析时间字符串

time.strptime(string, format):解析时间字符串,format见具体格式,返回 time.struct_time

import time

print(time.strptime("2020-07-11 12:00:00", "%Y-%m-%d %H:%M:%S"))
# time.struct_time(tm_year=2020, tm_mon=7, tm_mday=11, tm_hour=12, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=193, tm_isdst=-1)




参考文献

  1. time — 时间的访问和转换
  2. calendar.timegm()
  3. Python调用PyExecJS库运行JavaScript

本文地址:https://blog.csdn.net/lly1122334/article/details/107359069