目录

  • 认识时间戳
  • 认识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-8import timeimport datetimenow = 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 - 100000before_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