python--模块之time,datetime时间模块

time:

 

表示时间的三种方式:
时间戳、格式化的时间字符串、元组
时间戳是计算机能够识别的时间;
时间字符串是我们能够看懂的时间;
元组是用来操作时间;

导入时间模块
import time

1,时间戳(timastamp):时间戳表示的是从1970年1月1日00:00:00开始来按秒计算的偏移量。我们运行‘type(time.time)’,返回的是float类型

print(time.time())
>>1537960114.8479772

2,格式化的时间字符串(format string):'2019-09-23'

print(time.strftime('%y-%m-%d %X'))
>>18-09-26 19:10:32

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月中的一天(01-31)
%H 24小时制小时数(01-24)
%I 12小时制小时数(01-12)
%M 分钟数(00-59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%w 星期(0-6),星期天为星期的开始
%W 一年中星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地日期的时间表示
%% %号的本身

3,元组(struct_time):
localtime将一个时间戳转换为当前时区的struct_time
共有你9个元素:

print(time.localtime())
>>time.struct_time(tm_year=2018, tm_mon=9, tm_mday=26, tm_hour=19, tm_min=12, tm_sec=15, tm_wday=2, tm_yday=269, tm_isdst=0)

tm_year(年) :2018
tm_mon(月) :1-12
tm_mday(日) :1-31
tm_hour(时) :0-23
tm_min(分):0-59
tm_sec(秒) :0-60
tm_wday(一周的第几天):0-6(0表示周一)
tm_yday(一年中的第几天):1-366
tm_isdst(是否夏令时):默认为0

 

 

time 时间格式相互转换:

 

时间戳---》元组时间

time.gmtime(时间戳)
time.localtime(时间戳)

结构化时间---》》时间戳
#time.mktime(结构化时间)

结构化时间---》》字符串时间
#time.strftime("格式定义","结构化时间") 结构化时间参数若不传,则显示当前时间

字符串时间----》》结构化时间
#time.strptime(时间字符串,字符串对应格式)


结构化时间-----》》%a %b %d %H:%M:%S %Y串
#time.asctime(结构化时间)
#如果不传参数,直接返回当前时间的格式化串

时间戳-----》》%a %b %d %H:%M:%S %Y串

 


时间戳---》元组时间
time.gmtime(时间戳)
time.localtime(时间戳)


import time

print(time.time())
print(time.gmtime(1537960993.1141999))

print(time.localtime())

>>time.struct_time(tm_year=2018, tm_mon=9, tm_mday=26, tm_hour=11, tm_min=23, tm_sec=13, tm_wday=2, tm_yday=269, tm_isdst=0)
>>time.struct_time(tm_year=2018, tm_mon=9, tm_mday=26, tm_hour=19, tm_min=25, tm_sec=20, tm_wday=2, tm_yday=269, tm_isdst=0)

 

结构化时间---》》时间戳
#time.mktime(结构化时间)


time_tuple = time.localtime(1500000000)
print(time_tuple)
print(time.mktime(time_tuple))

>>time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
>>1500000000.0


结构化时间---》》字符串时间
#time.strftime("格式定义","结构化时间") 结构化时间参数若不传,则显示当前时间

print(time.strftime("%Y-%m-%d %X"))

print(time.strftime("%Y-%m-%d %X",time.localtime(150000000)))

>>2018-10-11 19:03:29
>>1974-10-03 10:40:00


字符串时间----》》结构化时间
#time.strptime(时间字符串,字符串对应格式)

print(time.strptime("2017-03-16","%Y-%m-%d"))

>>time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)


结构化时间-----》》%a %b %d %H:%M:%S %Y串
#time.asctime(结构化时间)
#如果不传参数,直接返回当前时间的格式化串

print(time.asctime(time.localtime(1500000000)))
print(time.asctime())

>>Fri Jul 14 10:40:00 2017
>>Thu Oct 11 19:13:46 2018


时间戳-----》》%a %b %d %H:%M:%S %Y串

#time.ctime(时间戳) 如果不传参数,直接返回当前时间的格式化串

print(time.ctime())
print(time.ctime(1500000000))

>>Thu Oct 11 19:17:23 2018
>>Fri Jul 14 10:40:00 2017

 

datetime:

 

简介:
datetime包是基于time包的一个高级包,datetime可以理解为date和time两个组成部分。date是指年月日构成的日期(相当于日历),time是指时分秒构成的一天24小时中的具体时间(相当于手表)。

datetime.datetime()内有如下属性:
hour:小时
minute:分钟
second:秒
microsecond:微妙
year:年
month:月
day:日
weekday:表示周几

 

import datetime

t=datetime.datetime(2012,9,3,21,30)
print(t)

>>2012-09-03 21:30:00


运算:
datetime包还定义了时间间隔对象(timedelta)。一个时间点(datetime)加上一个时间间隔(timedelta)可以得到一个新的时间点(datetime)。


比如:今天的上午3点加上5个小时得到今天的上午8点。同理,两个时间点相减会得到一个时间间隔


t=datetime.datetime(2012,9,3,21,30)
t_next=datetime.datetime(2012,9,5,21,30)

delta1=datetime.timedelta(seconds=600)
delta2=datetime.timedelta(weeks=3)
print(t)
print(t+delta1)
print(t+delta2)
print(t_next-t)

>>2012-09-03 21:30:00
>>2012-09-03 21:40:00
>>2012-09-24 21:30:00
>>2 days, 0:00:00


两个datetime对象还可以进行比较。
print(t > t_next)
>>False

 

posted @ 2018-10-12 19:05  Aron.chen  阅读(263)  评论(0编辑  收藏  举报
Counters
Childrens Vitamins