python模块-datetime模块
上面一篇已经讲了time模块,再来学习datetime模块。
datetime主要有datetime、timedelta、time、date这4个子模块。
a、datetime常用的函数(datetime对象)
1、获取当前时间:结果为struct_time
>>> a=datetime.datetime.now() >>> print a.year,a.hour,a.minute 2017 15 58
2、获取当天时间:结果为struct_time
>>> datetime.datetime.today() datetime.datetime(2017, 9, 23, 16, 1, 34, 637868)
3、格式化时间戳,结果为struct_time
>>> datetime.datetime.fromtimestamp(time.time()) datetime.datetime(2017, 9, 23, 16, 3, 26, 926928)
4、datetime.datetime.strftime():结果为string_time
>>> datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') '2017-09-23 16:10:05'
5、datetime.datetime.strptime(),结果为struct_time
>>> datetime.datetime.now().strptime('2016-10-11','%Y-%m-%d') datetime.datetime(2016, 10, 11, 0, 0)
6、datetime的所有函数
>>> dt=datetime.datetime.now() >>> dt.weekday() 5 >>> dt. dt.combine( dt.min dt.toordinal( dt.ctime( dt.minute dt.tzinfo dt.date( dt.month dt.tzname( dt.day dt.now( dt.utcfromtimestamp( dt.dst( dt.replace( dt.utcnow( dt.fromordinal( dt.resolution dt.utcoffset( dt.fromtimestamp( dt.second dt.utctimetuple( dt.hour dt.strftime( dt.weekday( dt.isocalendar( dt.strptime( dt.year dt.isoformat( dt.time( dt.isoweekday( dt.timetuple( dt.max dt.timetz( dt.astimezone( dt.microsecond dt.today(
b、timedelta,时间段,可以用来获取将来或过去某个时间
timedelta是一个时间段,不是表示一个时间点。所以我们可以把时间段用来加减操作。
比如:获取当天此时,明天此时,昨天此时,上周同一时刻
>>> datetime.datetime.now() + datetime.timedelta(days=0) datetime.datetime(2017, 9, 23, 16, 21, 50, 308900) >>> datetime.datetime.now() + datetime.timedelta(days=1) datetime.datetime(2017, 9, 24, 16, 21, 57, 788849) >>> datetime.datetime.now() + datetime.timedelta(days=-1) datetime.datetime(2017, 9, 22, 16, 21, 59, 829977) >>> datetime.datetime.now() + datetime.timedelta(days=-7) datetime.datetime(2017, 9, 16, 16, 24, 41, 5906) >>>
可以通过days、hours、minutes、seconds、microseconds指定天、时、分、秒、微妙来获取将来或过去的某个时间点。
>>> datetime.datetime.now() + datetime.timedelta(days=0) datetime.datetime(2017, 9, 23, 16, 32, 56, 16910) >>> datetime.datetime.now() + datetime.timedelta(days=-1,hours=1,seconds=10,minutes=2,microseconds=10) datetime.datetime(2017, 9, 22, 17, 35, 7, 392881) >>> datetime.datetime.now() + datetime.timedelta(days=1,hours=1,seconds=10,minutes=2,microseconds=10) datetime.datetime(2017, 9, 24, 17, 35, 10, 857056) >>>
c、date,生成一个日期对象,参数为:年、月、日
date(year, month, day) --> date object
>>> datetime.date(2017,9,23) datetime.date(2017, 9, 23)
d、time,生成一个时间对象,参数为:时、分、秒、微妙
time([hour[, minute[, second[, microsecond[, tzinfo]]]]]) --> a time object
>>> datetime.time(16,11,11,11) datetime.time(16, 11, 11, 11)