time模块和datetime模块

写程序时对时间的处理可以归为以下3种:
1、时间的显示,在屏幕显示、记录日志等。
2、时间的转换,比如把字符串格式的日期转成Python中的日期类型。
3、时间的运算,计算两个日期间的差值等。
在python中表示时间的方式:
1、时间戳(timestamp), 表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
2、格式化的时间字符串
3、元组(struct_time)共九个元素。由于Python的time模块实现主要调用C库,所以各个平台可能有所不同,mac上:time.struct_time(tm_year=2020, tm_mon=4, tm_mday=10, tm_hour=2, tm_min=53, tm_sec=15, tm_wday=2, tm_yday=100, tm_isdst=0)

0     tm_year(年)                 比如2011
1     tm_mon(月)                  1 - 12
2     tm_mday(日)                 1 - 31
3     tm_hour(时)                 0 - 23
4     tm_min(分)                  0 - 59
5     tm_sec(秒)                  0 - 61
6     tm_wday(weekday)            0 - 6(0表示周日)
7     tm_yday(一年中的第几天)       1 - 366
8     tm_isdst(是否是夏令时)        默认为-1

time模块方法
1、time.localtime([secs]):将一个时间戳转换为struct_time,若secs参数为设定,则以当前时间为准
2、time.gmtime([secs]):将一个时间戳转换为UTC时区(0时区)的struct_time
3、time.time():返回当前时间的时间戳
4、time.mktime(t):将一个struct_time转化为时间戳。
5、time.sleep(secs):线程推迟指定的时间运行,单位为秒。
6、time.asctime([t]):把一个表示时间的元组或者struct_time表示为这种形式:'Wed Sep 25 15:26:03 2019',若没有参数,则以当前时间为准
7、time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))
8、time.strftime(format[, t]):把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()
9、time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。

datetime模块

1、datetime.date.today():  datetime.date(2019, 9, 25)
2、datetime.date.timeturple(datetime.date.today()):
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=25, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=268, tm_isdst=-1)
4、datetime.date.fromtimestamp("时间戳")
如:datetime.date.fromtimestamp(100000000)
   datetime.date(1973, 3, 3)
5、datetime.datetime.now()
datetime.datetime(2019, 9, 25, 18, 20, 50, 795482)
6、datetime.datetime.fromtimestamp("时间戳")
7、datetime.timedelta():做时间的运算。
d1 = datetime.datetime.now()
datetime.datetime(2019, 9, 25, 18, 26, 25, 863051)
d1 - datetime.timedelta(days=4)
datetime.datetime(2019, 9, 21, 18, 26, 25, 863051)
括号内还可以填写hours(小时),seconds(秒),microseconds(毫秒),minutes(分钟)
8、时间替换
d1 = datetime.datetime.now()
datetime.datetime(2019, 9, 25, 18, 31, 51, 429162)
d1.replace(years = 2015, month=11, day=30)
datetime.datetime(2015, 11, 30, 18, 31, 51, 429162)

posted @ 2019-09-25 18:33  虚xu  阅读(128)  评论(0编辑  收藏  举报