Python 中的 datetime 模块的简单使用

datetime 对象可以打印精确的当前日期和时间:

In [1]: from datetime import datetime   

In [2]: datetime.utcnow()      # 获得格林威治时间,即伦敦时间,比北京时间慢 8 小时
Out[2]: datetime.datetime(2018, 2, 20, 16, 53, 30, 587768)

In [3]: datetime.now()         # 获得本地时间,即北京时间
Out[3]: datetime.datetime(2018, 2, 21, 0, 53, 41, 794014)

In [4]: print(datetime.now())  # 用 print 格式化打印样式
2018-02-21 01:02:20.425024

In [5]: datetime.now()
Out[5]: datetime.datetime(2018, 3, 12, 13, 17, 37, 771038)

In [6]: datetime.now().date() # 取日期
Out[6]: datetime.date(2018, 3, 12)

In [7]: datetime.now().time() # 取时间
Out[7]: datetime.time(13, 17, 54, 87407)

In [8]: print(datetime.now().date())
2018-03-12

In [8]: print(datetime.now().time())
13:18:08.385321

striptime 方法将字符串转换为 datetime 数据类型:

In [12]: type(datetime.now())  
Out[12]: datetime.datetime

In [13]: s = '2018-02-21 Kobe 01#:02:20'

# 格式化字符串,使之转换为 datetime 数据类型
In [14]: d = datetime.strptime(s, '%Y-%m-%d Kobe %H#:%M:%S')

In [15]: d
Out[15]: datetime.datetime(2018, 2, 21, 1, 2, 20)

In [16]: print(d)
2018-02-21 01:02:20

In [17]: type(d)
Out[17]: datetime.datetime

strftime 方法将 datetime 数据类型转换为字符串:

In [26]: d
Out[26]: datetime.datetime(2018, 2, 21, 1, 2, 20)

# %a 简化英文星期名称
# %m 月份(01-12)
# %d 月中的一天(0-31)
In [27]: s = d.strftime('%a %m %d %H:%M:%S')

In [28]: s
Out[28]: 'Wed 02 21 01:02:20'

timedelta 方法加减日期时间:

In [53]: from datetime import timedelta

In [54]: now = datetime.now()

In [55]: now
Out[55]: datetime.datetime(2018, 2, 21, 1, 51, 19, 90276)

# 参数包括 days、hours、seconds 等
# 所有参数均为可选参数,且默认都是 0,参数值可以是整数、浮点数、正数或负数
In [56]: now + timedelta(days=1)
Out[56]: datetime.datetime(2018, 2, 22, 1, 51, 19, 90276)

In [57]: now + timedelta(days=3, hours=-1.5)
Out[57]: datetime.datetime(2018, 2, 24, 0, 21, 19, 90276)

In [58]: now - timedelta(days=-3, hours=1.5)
Out[58]: datetime.datetime(2018, 2, 24, 0, 21, 19, 90276)

你可能感兴趣的:(Python 中的 datetime 模块的简单使用)