模块2

模块的分类:

a:标准库(内置模块)

b:开源模块

c:自定义模块(实际上就是在写一个python文件)

一:时间模块 :time与datetime

timezone:当地时间与UTC之间的时间间隔的时间戳。负数表示比UTC时间晚,比如中国显示-28800,即8个小时,即中国处于东八区,比UTC时间晚8个小时。

time():获取时间戳

time.sleep(2):睡2秒

time.gmtime():需要向里面输入的是秒,也就是时间戳的格式,然后输出的是元组的形式,但是转换成并非是北京时间,而是转化成UTC时间。(时间戳转化成元组)

time.localtime():需要向里面输入的是秒,也就是时间戳的格式,然后输出的是元组的形式,直接转化成当地时间,即UTC+8的时区。(时间戳转化成元组)

time.mktime():需要向里面输入元组的形式,然后输出的是时间戳的形式。(元组转化成时间戳)

time.strftime("%Y-%m-%d %H:%M:%S",x):其实这个方法相当于把后面的元组中的各个元素赋值给了前面的%Y,%m等等,即%Y相当于x.tm_year,%m相当于x.tm_mon。所以前面的format的排序其实是无所谓的。(元组转化成格式化的时间字符串)

time.strptime("2017-11-30 23:22:18","%Y-%m-%d %H:%M:%S"),这个前面输入的是格式化的时间字符串,后面的是这个字符串的format,然后这个东西代表的是一个tuple。(格式化的时间字符串转化成元组)

import time  
a=time.time() #1512055854.8509285 时间戳
b=time.localtime(a) #time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=23, tm_min=30, tm_sec=54, tm_wday=3, tm_yday=334, tm_isdst=0)元组
c=time.mktime(b) #1512055854.0 时间戳
d=time.strftime("%Y-%m-%d %H:%M:%S",b) #2017-11-30 23:30:54格式化的时间
e=time.strptime("2017-11-30 23:22:18","%Y-%m-%d %H:%M:%S")#time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=23, tm_min=22, tm_sec=18, tm_wday=3, tm_yday=334, tm_isdst=-1)元组
print(a)
print(b)
print(c)
print(d)

asctime:将元组转化成特定的格式化的字符串

import time
a=time.time()
b=time.localtime(a)
c=time.asctime(b)
print(c)
#输出结果:Fri Dec 1 00:07:59 2017

ctime:将时间戳转换成特定的格式化的时间字符串

import time
a=time.time()
b=time.ctime(a)
print(b)
#输出结果:Fri Dec 1 00:09:38 2017

也就是说asctime和ctime转化的最终形式是一样的,只不过一个是元组转换来的,一个是时间戳转换来的。

在python中,通常有以下几种表示时间的方式:①时间戳,②格式化的时间字符串,③元组(struct_time)

①时间戳:

import time

print(time.time())

打印出来的单位是秒,是距离1970年1月1号0点0分0秒的时间

②格式化的时间字符串:

③元组:

import time

print(time.localtime())

结果如下:time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=20, tm_min=31, tm_sec=13, tm_wday=3, tm_yday=334, tm_isdst=0)

所以元组表示的时间方式的9个元素是:年、月、日、时、分、秒、一周的第几天、一年的第几天、时区

 

datetime

import datetime
 
# print(datetime.datetime.now()) #返回 2016-08-19 12:47:03.941925
# print(datetime.date.fromtimestamp(time.time()) )  # 时间戳直接转成日期格式 2016-08-19
# print(datetime.datetime.now() )
# print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天
# print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天
# print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时
# print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分

注:部分摘自他人blog

原文地址:https://www.cnblogs.com/zaizaiaipython/p/7933469.html