表示时间的三种方式
python中有三种表示时间的方式,时间戳,字符串时间,结构化时间。
- 时间戳(timestamp):1970年1月1日00:00:00开始按秒计算的偏移量,type(time.time() 是当前时间的时间戳) float类型。
- 格式化时间字符串(Format String):‘1999-12-06’。
- 时间元组(stuct_time):共有9个元素(年月日时分秒,一年中的第几周,一年中第几天等)
三者间的转化
时间戳与结构化时间间的转换
-
时间戳转换成结构化时间:
-
time.localtime(参数):
localtime()方法有一个参数,形式是时间戳形式,默认**time.time()**当地时区前时间戳。 -
time.gmtime(参数):类似localtime,只是是零时区的时间。
-
import time
# 时间戳概念
# 返回1564997532.4630558 (从一九七零年一月一日凌晨至今的时间)单位秒
print(time.time())
# 将时间戳转为结构化时间,得到一个结构化时间对象,无返回值
# time.struct_time(tm_year=2019, tm_mon=8, tm_mday=5, tm_hour=17,
# tm_min=34, tm_sec=44, tm_wday=0, tm_yday=217, tm_isdst=0)
# 依次是年月日,时分秒,星期几(0,6),一年中的第几天,是否是夏令时
# 函数可以传参数,必须是时间戳,默认当前时间
print(time.localtime())
# 将时间戳转为结构化时间,
# 和localtime()一样,只不过这个是世界标准时间(0时区),默认当前时间
print(time.gmtime())
- 结构化时间转换为时间戳
time.mktime()接收一个struct_time,返回一个时间戳
# 将结构化时间转为时间戳(必须有参数,参数是结构化时间)
print(time.mktime(time.localtime()))
结构化时间和字符串时间间的转换。
# 将结构化时间转为字符串时间(第一个参数是转化形式,第二个是一个结构换时间对象, 默认当前时间)
print(time.strftime('%Y-%m-%d %X', time.localtime()))
# 将字符串时间转为结构化时间(两个参数一一对应,前一个是字符串时间,后一个是转化形式)
print(time.strptime('2018:12:24 17:50:20', '%Y:%m:%d %X'))
以固定的格式将结构化时间转换为字符串时间
asctime() 传入参数结构化时间,若不传,默认当前时间
# 形式是('%a %b %d %H:%M:%S %Y')
# 代表(周几,月份,日份,时分秒,年份)
# 默认当前时间
print(time.asctime())
以固定的格式时间戳转化为字符串时间
ctime()传入草拟书 时间戳 ,若不传,默认当前时间
# 形式是('%a %b %d %H:%M:%S %Y')
# 代表(周几,月份,日份,时分秒,年份)
# 默认当前时间
print(time.ctime())
asctime()与ctime()以固定的形式将结构化时间,时间戳转化为字符串时间。
datatime模块。
datatime模块有四个主要的类。
- datetime.date: 是指年月日构成的日期(相当于日历)
- datetime.time: 是指时分秒微秒构成的一天24小时中的具体时间(相当于手表)
- datetime.datetime: 上面两个合在一起,既包含时间又包含日期
- datetime.timedelta: 时间间隔对象(timedelta)。一个时间点(datetime)加上一个时间间隔(timedelta)可以得到一个新的时间点(datetime)。比如今天的上午3点加上5个小时得到今天的上午8点。同理,两个时间点相减会得到一个时间间隔。
其中每个类下都有很多方法。
今天就写一个最常用的方法。
import datetime
print(datetime.datetime.now()) # 以固定的字符串格式将当前时间打印出来
时间模块在以后不我们的编程中都很重要的。