个人入门学习笔记的整理,有利于提升自己学习和归纳的能力。
希望对和我一样的入门菜鸟有帮助。
介绍:time、datetime是处理时间日期常用的库,datetime的time的再次封装,使用起来更加的方便,datetime主要是对日期(年月日)的处理,time主要是对时间(时分秒 毫秒)处理,在tick数据处理中就应用了毫秒的处理。
一、datetime- Basic date and time types
date:日期类,只包含年月日、星期等。
import datetime
someday = datetime.date(2019,1,14)
someday
导入datetime库
%a 星期的简写。星期一 : Mon
%A 星期的全写。星期一 :Monday
%b 月份的简写。一月:Jan
%B 月份的全写。一月:January
%c 日期时间的字符串表示。'Mon Jan 14 00:00:00 2019'
%d 日在这个月中的天数(这个月的第几天)
%f 微秒
%H 24小时制
%h 12小时制
%j 日在年中的天数[001,366]
%m 月份[01,12]
%M 分钟[00,59]
%p AM 或者 PM
%S 秒[00,61]
%U 在当年的第几周,星期天作为周的第一天
%w 今天在这周的第几天[0,6],6表示星期天
%W 是当年的第几周,星期一作为周的第一天
%x 日期字符串
%X 时间字符串
%y 2个数字表示年份
%Y 4个数字表示年份
%z 与utc时间的间隔(如果是本地时间,返回空字符串)
%Z 时区名称(如果是本地时间,返回空字符串)
日期的标准化格式。本地时间(北京时间)和UTC时间(世界标准时间)相差8个小时。
someday.strftime('%Y/%m/%d')
time:时间类,只包含时、分、秒、微秒等。
sometime = datetime.time(hour=12,minute=59,second=58,microsecond=100)
格式化时间
sometime.strftime('%H:%M:%S')
返回微秒的精确时间
sometime.isoformat()
datetime:日期时间类,包含以上两者的全部信息。年月日、时分秒,但是至少要用年月日三个参数。
datetime.datetime(year=2019,month=1,day=14,hour=12,minute=13,second=14,microsecond=100)
datetime 、struct_time 、stamptime相互转换
somedatetime.timestamp() #将datetime类型转为时间戳
datetime_local = datetime.datetime.fromtimestamp(time.time()) #将时间戳转为datetime
datetime_local.timetuple() #将datetime类型转为struct_time类型
timedelta:时间日期差值类,用来表示两个datetime之间的差值。
现在+-时间间隔操作,参数:days、hours、minutes、seconds、microseconds
datetime.datetime.now()+datetime.timedelta(days=30) #30天之后
datetime.datetime.now()- datetime.timedelta(minutes=30) #30分钟之前
二、time-Time access and conversions
时间戳:Unix时间戳,从1970年开始到现在的秒数。
本地时间的struct_time形式:一个长度为11的命名元组。
UTC时间的struct_time形式:一个长度为11命名的元组。
time.time() # 时间戳
time.localtime() #本地的struct_time
time.gmtime() #utc的struct_time
timestamp、localtime、utc_time之间的转换
local_time = time.localtime(timestamp) #时间戳转为本地struct_time
utc_time = time.gmtime(timestamp) #时间戳转为utc的struct_time
time_stamp = time.mktime(local_time) #本地struct_time转为时间戳
time_stamp_utc = calendar.timegm(utc_time) #utc struct_time转为时间戳
三、pandas库处理时间
导入pandas
import pandas as pd
date_index = pd.date_range('20190101',periods=10)
pd.date_range(日期字符串,periods,freq)
periods:时间段长度,整数类型
freq: 时间单位
pd.bdate_range(end,periods,freq)
pd.bdate_range(start,periods,freq)
pd.bdate_range(start='20190101',periods=30,freq='D')
pd.bdate_range(end='20190101',periods=30,freq='D')