time 模块

 

1. time模块

1.1测试

>>> time.time()
1523778095.6930795

>>> time.localtime()
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=15, tm_hour=15, tm_min=41, tm_sec=45, tm_wday=6, tm_yday=105, tm_isdst=0)

>>> time.localtime().tm_year
2018
>>> time.localtime().tm_mon
4

1.2转换

time.localtime() 可以传入参数, time.time()不行

>>> tt=time.time()
>>> tl=time.localtime()
>>> 
>>> time.localtime(tt)
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=15, tm_hour=17, tm_min=26, tm_sec=42, tm_wday=6, tm_yday=105, tm_isdst=0)
>>> time.time(tl)
Traceback (most recent call last):
  File "<pyshell#84>", line 1, in <module>
    time.time(tl)
TypeError: time() takes no arguments (1 given)
>>>

>>> time.mktime(tl)
1523784410.0

1.3格式化

可以对time.localtime()格式化,不能对time.time()格式化

>>> "%s-%s-%s %s:%s:%s"%(tl.tm_year,tl.tm_mon,tl.tm_mday,tl.tm_hour,tl.tm_min,tl.tm_sec)
>>> time.strftime('%Y-%m-%d %H:%M:%S',tl)
'2018-04-15 17:26:50'
>>> 
>>> time.strftime('%Y-%m-%d %H:%M:%S',tt)
Traceback (most recent call last):
  File "<pyshell#105>", line 1, in <module>
    time.strftime('%Y-%m-%d %H:%M:%S',tt)
TypeError: Tuple or struct_time argument required
>>> 

或者直接对当前时间格式化

>>> time.strftime('%Y-%m-%d %H:%M:%S')
'2018-04-15 18:21:42'
>>> 

1.4 格式化与反格式化

>>> s1=time.strftime('%Y-%m-%d %H:%M:%S')
>>> time.strptime(s1,'%Y-%m-%d %H:%M:%S')
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=15, tm_hour=18, tm_min=37, tm_sec=11, tm_wday=6, tm_yday=105, tm_isdst=-1)
>>> 

 1.5 全程

>>> tt=time.time()
>>> tt
1523789896.6532319
>>> tl=time.localtime(tt)
>>> time.strftime('%Y-%m-%d',tl)   #丢失了 小时 分钟 等信息
'2018-04-15'
>>> time.strptime('2018-04-15','%Y-%m-%d')
time.struct_time(tm_year=2018, tm_mon=4, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=105, tm_isdst=-1)
>>> tl2=time.strptime('2018-04-15','%Y-%m-%d')
>>> time.mktime(tl2)
1523721600.0
>>> 

1.6 帮助

>>> help(time.strftime)
Help on built-in function strftime in module time:

strftime(...)
strftime(format[, tuple]) -> string

Convert a time tuple to a string according to a format specification.
See the library reference manual for formatting codes. When the time tuple
is not present, current time as returned by localtime() is used.

Commonly used format codes:

%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%H Hour (24-hour clock) as a decimal number [00,23].
%M Minute as a decimal number [00,59].
%S Second as a decimal number [00,61].
%z Time zone offset from UTC.
%a Locale's abbreviated weekday name.
%A Locale's full weekday name.
%b Locale's abbreviated month name.
%B Locale's full month name.
%c Locale's appropriate date and time representation.
%I Hour (12-hour clock) as a decimal number [01,12].
%p Locale's equivalent of either AM or PM.

Other codes may be available on your platform. See documentation for
the C library strftime function.

>>>

2 datetime模块

2.1测试

>>> 
>>> ddn=datetime.datetime.now()
>>> ddn
datetime.datetime(2018, 4, 15, 19, 3, 47, 798172)
>>> ddn.year
2018
>>> 

 2.2 转换

time.time 转换为datetime对象格式

>>> datetime.datetime.fromtimestamp(time.time())
datetime.datetime(2018, 4, 15, 19, 9, 53, 623096)

2.3 格式化

>>> ddn=datetime.datetime.now()
>>> ddn.strftime('%Y-%m-%d')
'2018-04-15'
>>> datetime.datetime.strftime(ddn,'%Y-%m-%d')
'2018-04-15'

2.4 日期相差

>>> datetime.datetime.now()- datetime.timedelta(hours=3)
datetime.datetime(2018, 4, 15, 16, 18, 19, 118009)
>>> 
>>> datetime.datetime.now()- datetime.timedelta(days=1)
datetime.datetime(2018, 4, 14, 19, 18, 24, 542319)
>>> 

 >>> datetime.datetime.now()- datetime.timedelta(minutes=30)
 datetime.datetime(2018, 4, 15, 18, 49, 5, 502662)
 >>>

 日期改写

>>> ddn=datetime.datetime.now()
>>> ddn
datetime.datetime(2018, 4, 15, 19, 20, 20, 565955)
>>> ddn.replace(year=2016)
datetime.datetime(2016, 4, 15, 19, 20, 20, 565955)
>>> 
原文地址:https://www.cnblogs.com/infaaf/p/8847863.html