time今天刚结束,趁热打铁,把datetime也干掉算了。看了一般调试电脑去了,现在回来了。
前面学的date感觉更多的是面向过程的,里面用的很多函数。
那datetime更加像一个面向对象的操作。
网上查了点资料,书上看了一些,准备挑一些自己认为的重点讲一下算了。
先说一下datetime.datetime好了,以前我就一直会用datetime.datetime.now()
当运行一个d1=datetime.datetime.now()或者d1=datetime.datetime.(2019,1,1)
其实本质是在完成实例化,所以,该对象d1会又很多定义的方法,属性。
由于是对实例的操作,不同的实例之间还能进行一些加减操作,返回datetime.timedelta对象。
In [244]: d1 = datetime.datetime(1985,11,5) In [245]: d2 = datetime.datetime.now() In [246]: isinstance(d1,datetime.datetime) Out[246]: True In [247]: d1-d2 Out[247]: datetime.timedelta(days=-12425, seconds=74030, microseconds=689037) In [248]: d1.isoweekday Out[248]: <function datetime.isoweekday> In [249]: d1.isoweekday() Out[249]: 2
这里简单的做了一个代码说明,对象又很多属性。(我感觉可能比较使用的准备标注红色)
datetime 实例方法:
datetime.date()
- 返回一个 date 对象datetime.time() - 返回一个 time 对象(tzinfo 属性为 None)
datetime.timetz()
- 返回一个 time() 对象(带有 tzinfo 属性)
datetime.replace([year[, month[, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]]]]])
- 生成一个新的日期对象,用参数指定日期和时间代替原有对象中的属性
datetime.astimezone(tz=None)
- 传入一个新的 tzinfo 属性,返回根据新时区调整好的 datetime 对象
datetime.utcoffset()
- 如果 tzinfo 属性是 None,则返回 None;否则返回 self.tzinfo.utcoffset(self)
datetime.dst()
- 如果 tzinfo 属性是 None,则返回 None;否则返回 self.tzinfo.dst(self)
datetime.tzname()
- 如果 tzinfo 属性是 None,则返回 None;否则返回 self.tzinfo.tzname(self)
datetime.timetuple()
- 返回日期对应的 time.struct_time 对象(类似于 time 模块的 time.localtime())
datetime.utctimetuple()
- 返回 UTC 日期对应的 time.struct_time 对象
datetime.toordinal()
- 返回日期对应的 Gregorian Calendar 日期(类似于 self.date().toordinal())
datetime.timestamp()
- 返回当前时间的时间戳(类似于 time 模块的 time.time())
datetime.weekday()
- 返回 0 ~ 6 表示星期几(星期一是 0,依此类推)
datetime.isoweekday()
- 返回 1 ~ 7 表示星期几(星期一是1, 依此类推)
datetime.isocalendar()
返回一个三元组格式 (year, week, day) # 第二个元素是“year中的第几周”,第三个元素是“该周的第几天”
datetime.isoformat(sep='T')
- 返回一个 ISO 8601 格式的日期字符串,如 "YYYY-MM-DD" 的字符串
datetime.__str__()
- 对于 date 对象 d 来说,str(d) 相当于 d.isoformat()
datetime.ctime()
- 返回一个表示日期的字符串,相当于 time 模块的 time.ctime(time.mktime(d.timetuple()))
datetime.strftime(format)
- 返回自定义格式化字符串表示日期,下面有详解
datetime.__format__(format)
- 跟 datetime.strftime(format) 一样,这使得调用 str.format() 时可以指定 data 对象的字符串
Returns a triple format (year, week, day) # The second element is the "year of the week", the third element is the "day of the week."