时间:2021-05-22
我们会经常遇到对时间的处理,用python来进行时间处理简直不要太方便了,这一期就给大家介绍一下python的时间处理!
用python进行时间处理主要会用到time,calendar,datetime及pandas这几个库,其中又以后两个最为常用。
这一期我们主要介绍一下用datetime库进行时间处理的常用操作。
1. datetime基础
1.1 获取当前时间
import timeimport datetime as dtm## 用datetime获取当前时间dtime = dtm.datetime.now() # dtm.datetime.utcnow() dtime# datetime.datetime(2018, 12, 15, 13, 1, 30, 200649) # 年、月、日、时、分、秒、微秒dtime.year, dtime.month, dtime.day# (2018, 12, 15)dtm.datetime.strftime(dtm.datetime.now(), '%Y-%m-%d %H:%M:%S')# '2018-12-15 20:47:45'# 用time库获取当前时间:time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time( )))# '2018-12-15 20:49:17'time.strftime("%Y-%m-%d %H:%M:%S") # '2018-12-15 20:50:11'1.2 datetime基本操作
from datetime import datetime, date, time# Using datetime.combine()d = date(2005, 7, 14)t = time(12, 30)datetime.combine(d, t)datetime(2005, 7, 14, 12, 30)# datetime 类的方法:datetime.date()datetime.time()# 可以用str()直接将时间格式转化为字符串dt = datetime(2005, 7, 14, 12, 30)# datetime(%Y,%m,%d,%H,%M,%S): # datetime共有6个参数,分别代表的是年月日时分秒。其中年月日是必须要传入的参数,时分秒可以不传入,默认全为零。# >>> # Using datetime.timetuple() to get tuple of all attributestt = dt.timetuple()for it in tt: print(it)# 2005 # year# 7 # month# 14 # day# 12 # hour# 30 # minute# 0 # second# 3 # weekday (0 = Monday, 6 = Sunday)# 195 # number of days since 1st January# -1 # dst - method tzinfo.dst() returned None##################################################### 返回今天是周几x='2018-05-27'int(dtm.datetime(int(x[ :4]),int(x[5:7]),int(x[8: ])).strftime('%w'))# 0 表示周日dtm.datetime(2017, 1, 1).strftime("%w") # 0-6 SUN-SAT2. 时间戳的转换
Unix时间戳: Unix 中常常使用一个数字记录时间,表示距离起始时间相差的秒数(根据系统的精度,时间单位有时毫秒,有时是纳秒)。大于 0 表示在起始时间之后,小于 0 就表示在起始时间之前。这个数字有时是浮点类型、有时是整数类型,但都称这个数字为 Unix 时间戳(Timestamp)
import timeimport datetime as dtm## 获取当前时间dtime = dtm.datetime.now() # dtm.datetime.utcnow() # 时间戳ans_time = int(time.mktime(dtime.timetuple()))ans_time# 1535860540# 时间戳的转换-1t1 = datetime.datetime.fromtimestamp(ans_time) # local timet1# datetime.datetime(2018, 9, 2, 11, 55, 40)# 也可以用time模块的localtime()方法: time.localtime(ans_time)# 时间戳的转换-2t2 = datetime.datetime.utcfromtimestamp(ans_time) # utc timet2# datetime.datetime(2018, 9, 2, 3, 55, 40)t2.strftime("%Y--%m--%d %H:%M:%S")# 2018--09--02 03:55:40# 时间戳的转换-3pd.to_datetime(ans_time,unit='s') # utc time# Timestamp('2018-09-02 03:55:40')3. 时间格式的转换
datetime.strptime解析时间需要输入相应的时间格式,而dateutil第三方库中的parser.parse方法则更加灵活。
dateutil.parser 有时候也会有一定的麻烦,比如 '42'会被解析为2042 年加上今天的日期:datetime.datetime(2042, 9, 1, 0, 0)
from dateutil.parser import parseparse('2011-01-03') # datetime.datetime(2011, 1, 3, 0, 0)parse('Jan 31, 1997 10:45 PM') # datetime.datetime(1997, 1, 31, 22, 45)parse('6/12/2011', dayfirst=True) # datetime.datetime(2011, 12, 6, 0, 0)# pandas:datestrs = ['2011-07-06 12:00:00', '2011-08-06 00:00:00']pd.to_datetime(datestrs)# DatetimeIndex(['2011-07-06 12:00:00', '2011-08-06 00:00:00'], dtype='datetime64[ns]', freq=None)4. Timedelta
timedelta 可以表示两个时间之间的时间差:
dtm.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
t1 = dtm.datetime(2018,7,12,15,6,9)t2 = dtm.datetime(2018,9,11,12,33,23)td = t2-t1td# datetime.timedelta(60, 77234) td.days,td.seconds# (60, 77234)# 将timedelta转换为: day, hour, minutedef parse_timedelta(td): """ transform timedelta to day, hour, minute """ return td.days, td.seconds//3600, (td.seconds//60)%60parse_timedelta(td)# (60, 21, 27)利用timedelta进行时间外推:
import datetime as dtm# 100天前的日期(dtm.datetime.now() - dtm.timedelta(days = 100)).strftime("%Y-%m-%d") def TaftD(FORMAT_DATE,i): """ 返回几天后的时间 """ return (dtm.datetime.strptime(FORMAT_DATE, '%Y-%m-%d') + dtm.timedelta(days = i)).strftime('%Y-%m-%d')def TaftH(FORMAT_TIME,i): """ 返回几小时后的时间 """ return (dtm.datetime.strptime(FORMAT_TIME, '%Y-%m-%d %H:%M:%S') + dtm.timedelta(hours = i)).strftime('%Y-%m-%d %H:%M:%S')TaftD("2018-05-17", -2)# '2018-05-15'TaftH("2018-05-17 10:40:00", 2)# '2018-05-17 12:40:00'这一期主要介绍了是datetime进行时间处理的一些常用操作,后续我们会介绍pandas中的一些时间处理的操作。欢迎点赞转发期待哦~
以上就是Python如何进行时间处理的详细内容,更多关于Python时间处理的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
python记录程序运行时间的三种方法这里提供了python记录程序运行时间的三种方法,并附有实现代码,最后进行比较,大家参考下:方法1importdateti
机械设计工程师,经常会用到CAD里面一个填充模块,如何进行填充呢,填充错误如何处理,今天跟大家分享一下CAD如何进行区域填充,CAD填充样式填充失败处理。
在python中进行两个整数相除的时候,在默认情况下都是只能够得到整数的值,而在需要进行对除所得的结果进行精确地求值时,想在运算后即得到浮点值,那么如何进行处理
联想电脑如何进行bios设置bios设置教程联想电脑如何进行bios设置bios设置教程联想电脑如何进行bios设置bios设置教程联想电脑如何进行bios设置
华为畅享max手机如何进行录屏?华为畅享MAX手机搭载的是麒麟710处理器,配有超大电池,售价1699元起,用户使用这款手机要如何如何进行录屏的呢?接下来的文章