python进行时间处理

取当前时间

取当前时刻年月日

  • 取年 datetime.now.now().yeay
  • 取月 datetime.now.now().month
  • 取日 datetime.now.now().day
from datetime import datetime

"""取当前时间与日期"""
datetime.now()
# 2019-06-22 22:15:16.529856

"""取年"""
datetime.now().year
# 2019

"""取月"""
datetime.now().month
# 06

"""取日"""
datetime.now().day
# 22

取当前周数

  • 返回周几 .weekday()+1
  • 返回第几周(当年中).isocalendar()
from datetime import datetime

"""返回今天是周几"""
datetime.now().weekday()+1

"""范围今天是今年的第几周"""
datetime.now().isocalendar()
# 返回元祖 (2019, 25, 6) 年、第几周、周几

指定日期格式

  1. date() 自动化设置
  2. time() 设置
  3. 利用 strftime() 自定义时间格式
from datetime import datetime

datetime.now().date()
# datetime.date(2019, 6, 22)

datetime.now().time()
# datetime.time(22, 26, 52, 200593)
代码说明
%H小时(24小时制)
%I小时(12小时制)
%M两位数的分钟
%S
%w星期几(0开始)
%U每年的第几周,周日为每周第一天
%W每年的第几周,周一为每周第一天
%F简写为 年-月-日
%D简写为 月/日/年

strftime() 案例

from datetime import datetime

datetime.now().strftime('%Y-%m-%d')

字符串转换

时间 ==> 字符串

  1. 取出当前时间
  2. 利用 strftime() 组装成所需格式
  3. 利用 str() 转换成所需字符串
from datetime import datetime

now = datetime.now()
str(now.strftime('%Y-%m-%d'))

字符串 ==> 时间

使用 parse() 函数将时间格式转化为字符串格式

from datetime import datetime
from dateutil.parser import parse

str_time = '2019-06-22'
parse(str_time)

时间索引

Pandas 可以根据时间来对字段数据进行筛选的一种方式

  1. 时间等于 ==
  2. 时间之后 >
  3. 时间之前 >
  4. 时间之间 &

表1

import pandas as pd

df = pd.read_excel(r'时间操作.xlsx')
"""取成交在8月10日之前的"""
df[df['成交时间']<datetime(2018,8,10)]

[外链图片转存失败(img-pqPKwAxr-1562034017600)(https://www.zhangkunzhi.com/images/时间操作表2.png)]

"""在8日到10日之间的"""
df[(df['成交时间']>datetime(2018,8,8))&(df['成交时间']<datetime(2018,8,10))]

[外链图片转存失败(img-NtcX3HCl-1562034017600)(https://www.zhangkunzhi.com/images/时间操作表3.png)]

时间运算

两个时间之差

  • 差值.days 按天
  • 差值.seconds 按秒
from datetime import datetime

cha = datetime.now() - datetime(2019,5,21,19,50)
# 33 days, 2:07:09.066486

cha.days  # 取差 按天算
cha.seconds  # 取茶 按秒算

时间偏移

指给时间往前或者往后推一段时间,即加或减一段时间。

  1. 利用 timedelta 支持天、秒、微秒偏移
  2. 利用 Pandas 中日期偏移量

timedelta

支持 daysseconds

from datetime import datetime, timedelta

date = datetime.now()
date + timedelta(days=1)  # 天数加 1

Pands 的 date offset

支持

  • Day(1)
  • Hour(1)
  • Minute(1)
from pandas.tseries.offsets import Day,Hour,Minute
from datetime import datetime

date = datetime.now()
date + Day(1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值