目录
- 认识时间戳
- 认识python的time模块与常用方法
- datetime包生成时间戳与时间戳转时间类型的方法
认识时间戳
- 1970年1月1日00时00分00秒至今的总毫秒(秒)数
- timestamp
- float类型
time模块与他的函数们
- 时间处理,转换时间格式
- 生成时间戳函数time
- 获取本地时间函数localtime
- localtime对应字段介绍
- 暂停时间函数sleep
- time中的strptime和strftime
生成时间戳函数time
获取本地时间函数localtime
- 导入包:
- 使用方法:
time.localtime(timestamp)
- 参数介绍∶
In [1]: import time
In [2]: t = time.localtime()
In [3]: t
Out[3]: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=21, tm_hour=17, tm_min=55, tm_sec=1, tm_wday=5, tm_yday=233, tm_isdst=0)
localtime对应字段介绍
暂停函数sleep
time中的strftime
- 导入包∶
- 使用方法:
- 参数介绍:
-
format
: 格式化规范
-
t
: time.localtime对应的时间类型
In [4]: import time
In [5]: str_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
In [6]: str_time
Out[6]: '2021-08-21 18:05:54'
time中的strptime
- 导入包:
- 使用方法:
time.strptime(time_str, format)
- 参数介绍:
-
time_str
:符台时间格式的字符串
-
format
: 确保与time_str
一致的格式化标准
In [8]: import time
In [9]: time_obj = time.strptime("2021-08-21", "%Y-%m-%d")
In [10]: time_obj
Out[10]: time.struct_time(tm_year=2021, tm_mon=8, tm_mday=21, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=233, tm_isdst=-1)
datetime中生成时间戳函数
- 导入包:
- 使用方法∶
now = datetime.datetime.now()
datetime.datetime. timestamp(now)
- 参数介绍:
- 返回秒级时间戳,浮点型
In [11]: import datetime
In [12]: now = datetime.datetime.now()
In [13]: now_timestamp = datetime.datetime.timestamp(now)
In [14]: now_timestamp
Out[14]: 1629540906.643593
datetime时间戳转时间对象
- 导入包∶
- 使用方法:
datetime.datetime.fromtimestamp(timestamp)
- 参数介绍:
- 返回值:
In [15]: now_timestamp
Out[15]: 1629540906.643593
In [16]: datetime_obj = datetime.datetime.fromtimestamp(now_timestamp)
In [17]: datetime_obj
Out[17]: datetime.datetime(2021, 8, 21, 18, 15, 6, 643593)
实战
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2021/8/21 17:56
# @Author : InsaneLoafer
# @File : package_time.py
import time
import datetime
now = time.time()
print(now, type(now))
time_obj = time.localtime(now)
print(time_obj, type(time_obj))
time.sleep(2)
print(time.localtime())
before = now - 100000
before_time_obj = time.localtime(before)
print(before_time_obj)
print(time.time() * 1000) # 返回毫秒级的时间戳
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_obj = datetime.datetime.fromtimestamp(datetime_timestamp)
print(datetime_obj)
1629541436.4847474 <class 'float'>
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=21, tm_hour=18, tm_min=23, tm_sec=56, tm_wday=5, tm_yday=233, tm_isdst=0) <class 'time.struct_time'>
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=21, tm_hour=18, tm_min=23, tm_sec=58, tm_wday=5, tm_yday=233, tm_isdst=0)
time.struct_time(tm_year=2021, tm_mon=8, tm_mday=20, tm_hour=14, tm_min=37, tm_sec=16, tm_wday=4, tm_yday=232, tm_isdst=0)
1629541438498.3157
0
1
2
3
4
5
6
7
8
9
datetime生成的时间戳1629541448.593227
2021-08-21 18:24:08.593227
Process finished with exit code 0