目录
- 认识时间戳
- 认识python的time模块与常用方法
- datetime包生成时间戳与时间戳转时间类型的方法
认识时间戳
- 1970年1月1日00时00分00秒至今的总毫秒(秒)数
- timestamp
- float类型
time模块与他的函数们
- 时间处理,转换时间格式
- 生成时间戳函数time
- 获取本地时间函数localtime
- localtime对应字段介绍
- 暂停时间函数sleep
- time中的strptime和strftime
生成时间戳函数time
- 导入包:
import time
- 使用方法:
time.time()
- 返回值:
- 秒级别的浮点类型
- 举例:
- 1580878485.4009378
获取本地时间函数localtime
- 导入包:
import time
- 使用方法:
time.localtime(timestamp)
- 参数介绍∶
timestamp
:时间戳(可不传)
In [22]: In [1]: import time ...: ...: In [2]: t = time.localtime() ...: ...: In [3]: tOut[22]: time.struct_time(tm_year=2023, tm_mon=6, tm_mday=3, tm_hour=11, tm_min=39, tm_sec=16, tm_wday=5, tm_yday=154, tm_isdst=0)
localtime对应字段介绍
暂停函数sleep
- 导入包:
import time
- 使用方法:
time.sleep(second)
- 参数介绍:
second
:希望程序被暂停的秒数
time中的strftime
- 首先我们导入time模块。通过调用striftime,第一个参数是格式化的匹配规则。第二个参数是一个时间localtime对象。返回赋值给str_time变量。通过打印返回了符合参数中格式化标准的字符串。它的功能和datetime中的striftime完全一致,只是要负责转换的变量类型不同而已,一个处理的是datetime.datetime时间类型,另一个处理的是time.struct_time时间类型。
- 导入包∶
import time
- 使用方法:
time.strftime(format,t)
- 参数介绍:
format
: 格式化规范t
: time.localtime对应的时间类型
In [23]: In [4]: import time ...: ...: In [5]: str_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) ...: ...: In [6]: str_timeOut[23]: '2023-06-03 11:40:08'
time中的strptime
- 导入包:
import time
- 使用方法:
time.strptime(time_str, format)
- 参数介绍:
time_str
:符台时间格式的字符串format
: 确保与time_str
一致的格式化标准
In [24]: In [8]: import time ...: ...: In [9]: time_obj = time.strptime("2023-6-3", "%Y-%m-%d") ...: ...: In [10]: time_objOut[24]: time.struct_time(tm_year=2023, tm_mon=6, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=154, tm_isdst=-1)
datetime中生成时间戳函数
- 这里请同学们注意,它不同于tiime模块的time函数生成一个时间戳而是将一个daytime对象转成时间戳。所以括弧中不传入参数是会报错的
- 导入包:
import datetime
- 使用方法∶
now = datetime.datetime.now()
datetime.datetime. timestamp(now)
- 参数介绍:
now
: datetime时间对象
- 返回秒级时间戳,浮点型
In [25]: In [11]: import datetime ...: ...: In [12]: now = datetime.datetime.now() ...: ...: In [13]: now_timestamp = datetime.datetime.timestamp(now) ...: ...: In [14]: now_timestampOut[25]: 1685763777.806192
datetime时间戳转时间对象
- time模块和datetime功能很多都是一样的,为什么要有两个呢?
- 在我们平时的工作中,datetime包更多的是对于日期的处理。而我们的time模块更多的是对于时间的处理。比如说时分秒这样子的处理方式,使用time可能会更合适一些。
- 导入包∶
import datetime
- 使用方法:
datetime.datetime.fromtimestamp(timestamp)
- 参数介绍:
timestamp
: 时间戳
- 返回值:
datetime
的日期对象
In [26]: In [15]: now_timestamp ...: Out[15]: 1685763777.806192 ...: ...: In [16]: datetime_obj = datetime.datetime.fromtimestamp(now_timestamp) ...: ...: In [17]: datetime_objOut[26]: datetime.datetime(2023, 6, 3, 11, 42, 57, 806192)
实战
# coding:utf-8 import time import datetime now = time.time() # 返回的是执行这个脚本的这行代码的最新时间戳 print(now, type(now)) # time.sleep(5) time_obj = time.localtime(now) # 把时间戳转化为可读的时间 print(time_obj, type(time_obj)) current_time_obj = time.localtime() print(current_time_obj) before = now - 100000 before_obj = time.localtime(before) print(before_obj) print(time.time() * 1000) # 返回毫秒级的时间戳 print(time.time()) # for i in range(10): # print(i) # time.sleep(1) datetime_now = datetime.datetime.now() datetime_timestamp = datetime.datetime.timestamp(datetime_now) print('datetime生成的时间戳:%s' % datetime_timestamp) datetime_now_obj = datetime.datetime.fromtimestamp(datetime_timestamp) print('时间戳转化后的日期对象为:%s' % datetime_now_obj) print(repr(datetime_now_obj))
1685278466.228453 time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=20, tm_min=54, tm_sec=26, tm_wday=6, tm_yday=148, tm_isdst=0) time.struct_time(tm_year=2023, tm_mon=5, tm_mday=28, tm_hour=20, tm_min=54, tm_sec=26, tm_wday=6, tm_yday=148, tm_isdst=0)time.struct_time(tm_year=2023, tm_mon=5, tm_mday=27, tm_hour=17, tm_min=7, tm_sec=46, tm_wday=5, tm_yday=147, tm_isdst=0)1685278466228.4531685278466.228453datetime生成的时间戳:1685278466.228452时间戳转化后的日期对象为:2023-05-28 20:54:26.228452datetime.datetime(2023, 5, 28, 20, 54, 26, 228452)进程已结束,退出代码0