python中的时间戳

举报
乂氼S 发表于 2023/06/07 14:38:05 2023/06/07
【摘要】 详解python中的时间戳

目录

  • 认识时间戳
  • 认识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]: t
Out[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_time
Out[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_obj
Out[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_timestamp
Out[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_obj
Out[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 <class 'float'>
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) <class 'time.struct_time'>
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.453
1685278466.228453
datetime生成的时间戳:1685278466.228452
时间戳转化后的日期对象为:2023-05-28 20:54:26.228452
datetime.datetime(2023, 5, 28, 20, 54, 26, 228452)

进程已结束,退出代码0

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。