Python中处理时间的模块有time、datetime和calendar。

在Python中表示时间的方式:

  • 时间戳:10位整数位和若干小数位,例如 1551153156.6358607
  • 元组(struct_time): 含有9个元素的元组,例如 (tm_year=2011, tm_mon=9, tm_mday=28, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=271, tm_isdst=-1)
  • 格式化字符串: 格式化的时间字符串, 例如 ‘2019-02-26 12:45:46’

time模块,以 元组(struct_time)为核心 实现时间戳和格式化时间字符串的相互转换。
datetime模块,以 datetime类实例对象 为核心实现时间戳和格式化时间字符串的相互转换。

Python的time模块

time模块是通过调用C库实现的,所以在有些平台上无法使用。大部分接口和C标准库的time.h一致。

使用time模块来进行格式化时间字符串和时间戳的相互转换。

将时间戳转换为格式化字符串

使用time模块获取当前时间的时间戳:

>>> import time
>>> time.time()
1551157481.034565

将时间戳转换为元组(struct_time):

>>> time.localtime(time.time())
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=13, tm_min=2, tm_sec=1, tm_wday=1, tm_yday=57, tm_isdst=0)

将元组(struct_time)转换为格式化时间字符串:

>>> time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
'2019-02-26 13:04:41'

Python 的datetime模块

和time模块相比,datetime模块提供更直接易用的接口,功能也更加强大。

datetime模块提供了处理日期和时间的类,既有简单的方式,也有复杂的方式。它虽然支持日期和时间算法,但其实现是重点是输出的格式化操作和更加有效的属性提取功能。

datetime模块中定义的类(这些类的对象都是不可变的):

datetime.date: 表示日期,常用的属性有year、month和day
datetime.time: 表示时间,常用的属性有hour、minute、second和microsecond
datetime.datetime: 表示日期时间
datetime.timedelta: 表示两个date、time和datetime实例之间的时间间隔,最小单位可达微秒
datetime.tzinfo: 时区相关对象的抽象基类,由time和datetime类使用
datetime.timezone: Python3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量

使用datetime模块中的datetime类将时间戳转换为格式化时间字符串

使用datetime类将时间戳转换为datetime实例:

>>> import time
>>> from datetime import datetime
>>> dt = datetime.fromtimestamp(time.time())
datetime.datetime(2019, 2, 26, 15, 27, 28, 678923)

将datetime实例转换为格式化字符串:

>>> dt.strftime('%Y-%m-%d %H:%M:%S')
'2019-02-26 15:27:28'

使用datetime模块中的datetime类将格式化时间字符串转换为时间戳

使用datetime类将格式化字符串’2019-02-26 15:27:28’转换为datetime实例:

>>> st = '2019-02-26 15:27:28'
>>> dt = datetime.strptime(st, '%Y-%m-%d %H:%M:%S')
datetime.datetime(2019, 2, 26, 15, 27, 28)

将datetime实例转转为元组(struct_time):

>>> tp = dt.timetuple()
time.struct_time(tm_year=2019, tm_mon=2, tm_mday=26, tm_hour=15, tm_min=27, tm_sec=28, tm_wday=1, tm_yday=57, tm_isdst=-1)

将元组(struct_time)转换为时间戳:

>>> time.mktime(tp)
1551166048.0

也可以直接使用datetime实例的timestamp()函数直接获取时间戳:

>>> dt.timestamp()
1551166048.0

使用datetime类获取当前日期和时间

使用datetime类获取当前日期:

>>> datetime.now().date().strftime('%Y-%m-%d')
'2019-02-26'

使用datetime类获取当前时间:

>>> datetime.now().time().strftime('%H:%M:%S')
'15:48:43'
                    Python 日期和时间戳的转换Python中处理时间的模块Python中处理时间的模块有time、datetime和calendar。在Python中表示时间的方式:时间戳:10位整数位和若干小数位,例如 1551153156.6358607元组(struct_time):  含有9个元素的元组,例如 (tm_year=2011, tm_mon=9, tm_mday=28, tm_hour=10, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=271, tm_i
####################################################
# 时间戳日期
#####################################################
# 获得当前时间时间戳
now = int(time.time())
#转换为其他日期格式,如:"%Y-%m-%d %H:%M:%S"
timeArray = time.localtime(now)
otherStyl
				
对于时间数据,如2016-05-05 20:28:54,有时需要与时间戳进行相互的运算,此时就需要对两种形式进行转换,在Python中,转换时需要用到time模块,具体的操作有如下的几种: 将时间转换时间戳 重新格式化时间 时间戳转换为时间 获取当前时间及将其转换时间戳 1、将时间转换时间戳将如上的时间2016-05-05 20:28:54转换时间戳,具体的操作过程为: 利用strptime
import time time_str = "2022-03-18 10:54:00" struct_time = time.strptime(time_str, '%Y-%m-%d %H:%M:%S') print(struct_time) time.struct_time(tm_year=20 datetime(year, month=None, day=None, hour=0, minute=0, second=0, microsecond=0, tzinfo=None) 构造 datetim...
java默认精度是毫秒级别的,生成的时间戳是13位,而python默认是10位的,精度是秒。那么python是如何生成13位时间戳,以及时间戳如何转换日期(年-月-日 时-分-秒) Python实现【时间戳】与【日期格式】之间相互化的应用函数汇总表: 二、将10位或13位时间戳日期格式(年-月-日 时-分-秒) 函数4 millisecond_to_time(millis):13位时间戳转换日期格式字符串 参考链接:【1】在线时间转换工具:https://tool.lu/timestamp...
要将时间戳化为北京时间,这里涉及一个时区的问题,由于Python默认只有时间戳化为UTC时间的函数,所以这里要引入pytz这个库 首先安装pytz模块,使用pip install pytz import time import datetime import pytztz = pytz.timezone('Asia/Shanghai') #东八区t = datetime.datetime.fro