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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章