python中的datetime

datetime

虽然time模块已经能够把有关时间方面的东西搞定了,但是,在某些调用的时候,还感觉不是很直接,于是又出来了一个datetime模块,供程序猿和程序媛们选择使用。

datetime模块中有几个类:

  • datetime.date:日期类,常用的属性有year/month/day
  • datetime.time:时间类,常用的有hour/minute/second/microsecond
  • datetime.datetime:日期时间类
  • datetime.timedelta:时间间隔,即两个时间点之间的时间长度
  • datetime.tzinfo:时区类

date类

通过实例了解常用的属性:

>>> import datetime
>>> today = datetime.date.today()
>>> today
datetime.date(2015, 5, 5)

这里其实生成了一个日期对象,然后操作这个对象的各种属性。用print语句,可以是视觉更佳:

>>> print today
2015-05-05
>>> print today.ctime()
Tue May  5 00:00:00 2015
>>> print today.timetuple()
time.struct_time(tm_year=2015, tm_mon=5, tm_mday=5, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=125, tm_isdst=-1)
>>> print today.toordinal()
735723

特别注意,如果你妄图用datetime.date.year(),是会报错的,因为year不是一个方法,必须这样行:

>>> print today.year
2015
>>> print today.month
5
>>> print today.day
5

进一步看看时间戳与格式化时间格式的转换

>>> to = today.toordinal()
>>> to
735723
>>> print datetime.date.fromordinal(to)
2015-05-05

>>> import time
>>> t = time.time()
>>> t
1430787994.80093
>>> print datetime.date.fromtimestamp(t)
2015-05-05

还可以更灵活一些,修改日期。

>>> d1 = datetime.date(2015,5,1)
>>> print d1
2015-05-01
>>> d2 = d1.replace(year=2005, day=5)
>>> print d2
2005-05-05

time类

也要生成time对象

>>> t = datetime.time(1,2,3)
>>> print t
01:02:03

它的常用属性:

>>> print t.hour
1
>>> print t.minute
2
>>> print t.second
3
>>> t.microsecond
0
>>> print t.tzinfo
None

timedelta类

主要用来做时间的运算。比如:

>>> now = datetime.datetime.now()
>>> print now
2015-05-05 09:22:43.142520

没有讲述datetime类,因为在有了date和time类知识之后,这个类比较简单,我最喜欢这个now方法了。

对now增加5个小时

>>> b = now + datetime.timedelta(hours=5)
>>> print b
2015-05-05 14:22:43.142520

增加两周

>>> c = now + datetime.timedelta(weeks=2)
>>> print c
2015-05-19 09:22:43.142520

计算时间差:

>>> d = c - b
>>> print d
13 days, 19:00:00
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值