一、获取当前时刻的时间
from datetime import datetime # 返回当前时刻的日期和时间 print(datetime.now()) # 分别返回当前时刻的年,月,日 print(datetime.now().year) print(datetime.now().month) print(datetime.now().day) # 返回当前时刻的周数 # 返回周几 print(datetime.now().weekday()+1) # 返回周数 print(datetime.now().isoweekday())
二、指定日期和时间的的格式
from datetime import datetime print(datetime.now().date()) print(datetime.now().time()) # 借助strftime函数可以自定义时间和日期的格式 print(datetime.now().strftime('%Y-%m-%d')) print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
三、字符串和时间格式互相转换
from datetime import datetime from dateutil.parser import parse now = datetime.now() print(now) # 查看now数据类型 print(type(now)) # 将时间数据类型转换成字符串格式 print(type(str(now))) # 将字符串格式转换为时间格式 str_time = '1999-11-11' print(type(str_time)) # 将字符串解析成时间 print(parse(str_time)) print(type(parse(str_time)))
四、时间索引
''' 时间索引:就是根据时间来对时间格式的字段进行数据选取的一种索引方式 在python中,可以选取具体的某一时间对应的值,也可以选择某一段时间内的值 ''' import pandas as pd import numpy as np from datetime import datetime index = pd.DatetimeIndex(['2018-01-01','2018-01-02','2018-01-03','2018-01-04','2018-01-05','2018-01-06','2018-01-07','2018-01-08','2018-01-09','2018-01-10']) data = pd.DataFrame(np.arange(1,11),index=index,columns=['num']) print(data) # 获取2108年的数据 print(data['2018']) # 获取2108年1月的数据 print(data["2018-01" ]) # 获取2018年1月1日到2018年1月5日的数据 print(data["2018-01-01":"2018-01-05"]) ''' 上面的方法只适用于索引是时间的情况下,并不是所有的情况都适合 ''' print('..........换数据..............') df = pd.read_excel("/Users/caizhengjie/Desktop/数据1.xlsx") print(df) # 选取成交时间为2018年8月8日 print(df[df['成交时间']==datetime(2018,8,8)]) # 选取成交时间为2018年8月9日之后的订单 print(df[df['成交时间'] > datetime(2018,8,9)]) # 选取成交时间为2018年8月10日之前的订单 print(df[df['成交时间'] < datetime(2018,8,10)]) # 选取成交时间为2018年8月8日到2018年8月11日之间的订单 print(df[(df['成交时间'] > datetime(2018,8,8))&(df['成交时间'] < datetime(2018,8,11))])
五、时间之差
from datetime import datetime from datetime import timedelta from pandas.tseries.offsets import Day,Hour,Minute cha = datetime(2020,2,2,11,34)-datetime(2020,1,23,1,2) print(cha) #差为10 days, 10:32:00 # 返回天的时间差 print(cha.days) # 返回秒的时间差 print(cha.seconds) # 换成小时差 print(cha.seconds/3600) ''' 时间偏移:就是给时间往前或往后推一段时间,即加减一段时间 python时间偏移方式有两种:1。借助timedelta,但是它只能偏移天,秒,微秒单位的时间 2。用pandas中的日期偏移量(date offset) ''' # timedelta data = datetime(2019,3,4,5,3) # 往后推一天 print(data+timedelta(days=1)) # 往后推60秒 print(data + timedelta(seconds=60)) # 往前推一天 print(data-timedelta(days=1)) # 往前推60秒 print(data - timedelta(seconds=60)) print("。。。。。。。。。。。。。。。。") # date offset:可以直接实现天,小时,分钟单位时间的偏移,不需要换算,相比timedelta更方便 # 往后推一天 print(data+Day(1)) # 往后推1小时 print(data+Hour(1)) # 往后推10分钟 print(data+Minute(10)) # 往前推一天 print(data-Day(1)) # 往前推1小时 print(data-Hour(1)) # 往前推10分钟 print(data-Minute(10))