datetime主要用来处理时间日期,使用前先导入datetime库。下面是几个常用功能:
>>> print datetime.datetime.now()
2018-06-18 16:39:15.712000
>>> print type(datetime.datetime.now())
<type 'datetime.datetime'>
返回的datetime时间格式。
>>> print datetime.datetime.now().date()
2018-06-18
>>> print type(datetime.datetime.now().date())
<type 'datetime.date'>
>>> datetime.datetime.now().timetuple()
time.struct_time(tm_year=2018, tm_mon=6, tm_mday=18, tm_hour=16, tm_min=51, tm_sec=26, tm_wday=4, tm_yday=198, tm_isdst=-1)
>>> datetime.datetime.now().timetuple().tm_mday
18
使用datetime.timedelta这个方法来前后移动时间,可用的参数有weeks,days,hours,minutes,seconds,microseconds等。
>>> print datetime.datetime.now() + datetime.timedelta(days=1)
2018-06-19 16:49:48.574000
>>> print datetime.datetime.now() + datetime.timedelta(hours=1)
2018-06-18 17:49:57.122000
>>> print datetime.datetime.now() + datetime.timedelta(minutes=-30)
2018-06-18 16:20:08.619000
例如:求上个月最后一天(从这个月第一天让时间向前减一天)
>>> print datetime.date(day=1,month=datetime.date.today().month,year=datetime.date.today().year) - datetime.timedelta(days=1)
2018-05-31
>>> (datetime.datetime.now() - datetime.datetime.utcnow()).total_seconds()
28800.0
>>> datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2018-06-18 16:58:46'
>>> print datetime.datetime.strptime("2018-06-18 16:58:46","%Y-%m-%d %H:%M:%S")
2018-06-18 16:58:46
>>> print type(datetime.datetime.strptime("2018-06-18 16:58:46","%Y-%m-%d %H:%M:%S"))
'datetime.datetime'>
Python 中datetime库API链接:https://docs.python.org/2/library/datetime.html
补充其他常用函数:
①:date.isocalendar() #返回结果是三元组(年号,第几周,第几天)
print('isocalendar():', datetime.datetime.now().isocalendar())
输出:isocalendar(): (2018, 25, 1)
②:date.strftime("%j") #计算输入的日期是一年中的第几天
input_date_str=input('请输入一个日期: ')
input_date=datetime.datetime.strptime(input_date_str,'%Y-%m-%d')
days=int(input_date.strftime("%j"))
print(input_date_str+'是一年中的第 '+str(days)+' 天')
输出: 请输入一个日期: 2018-12-31
2018-12-31是一年中的第 365 天