Python学习--15 日期和时间

方法预览:

datetime.now() # 当前时间,datetime类型
datetime.timestamp() # 时间戳,浮点类型
datetime.strftime('%Y-%m-%d %H:%M:%S') # 格式化日期对象datetime,字符串类型
datetime.strptime('2017-2-6 23:22:13', '%Y-%m-%d %H:%M:%S') # 字符串转日期对象
datetime.fromtimestamp(ts) # 获取本地时间,datetime类型
datetime.utcfromtimestamp(ts) # 获取UTC时间,datetime类型

获取当前时间

# coding: utf-8

from datetime import datetime

now = datetime.now()
print(now)
print(now.strftime('%Y-%m-%d %H:%M:%S'))

print(type(now))

输出:

2017-02-06 23:18:29.624698
2017-02-06 23:18:29
<class 'datetime.datetime'>

strftime()用于格式化日期对象datetime。另外一个方法strptime()则负责把一个字符串str转为datetime对象:

from datetime import datetime

odate = datetime.strptime('2017-2-6 23:22:13', '%Y-%m-%d %H:%M:%S')
print(odate)
print(type(odate))

输出:

2017-02-06 23:22:13
<class 'datetime.datetime'>

获取时间戳

# coding: utf-8

from datetime import datetime
import time

now = datetime.now()
print(now)

# datetime模块提供
print(now.timestamp())

# time模块提供
print(time.time())

输出:

2017-02-06 23:26:54.631582
1486394814.631582
1486394814.631582

小数位表示毫秒数。

自定义时间转换为时间戳:

from datetime import datetime

# 方式1:
odate = datetime.strptime('2017-2-6 23:29:20', '%Y-%m-%d %H:%M:%S')
print(odate.timestamp())

# 方式2:
odate = datetime(2017, 2, 6, 23, 29, 20)
print(odate.timestamp())

输出:

1486394960.0
1486394960.0

注意:timestamp的值是与时区无关的。datetime是有时区的。

下面演示如何把timestamp转换为datetime。

时间戳转日期:

# coding: utf-8

from datetime import datetime

now = datetime.now()
ts = now.timestamp()

print(datetime.fromtimestamp(ts))   # 本地时间
print(datetime.utcfromtimestamp(ts))    # UTC时间

输出:

2017-02-06 23:38:05.213937
2017-02-06 15:38:05.213937

datetime加减

可以直接导入timedelta类实现日期加减:

# coding: utf-8

from datetime import datetime, timedelta
import time

now = datetime.now()
# now += timedelta(hours=10)
# now += timedelta(minutes=10)
# now += timedelta(weeks=1)
now += timedelta(days=-1, hours=1, minutes=1, seconds=10)

print(now)

输出:

2017-02-06 00:47:12.395231

python中时间日期格式化符号

%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
%% %号本身

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值