范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

随心所欲地用Python处理时间(1ampampamp2)

  来源:AI入门学习
  作者:小伍哥
  datetime模块提供了用于处理日期和时间的类和对应的方法,一般用于处理年、月、日、时、分、秒的统计和计算等需求。在支持日期时间数学运算的同时,实现的关注点更着重于如何能够更有效地解析其属性用于格式化输出和数据操作。
  学习该模块,首先要有一个概念:日期和时间,要不然会混乱,这里进行狭义的理解即可:日期是日期,时间是时间,日常生活中有时候并没有很好的去区分。
  日期:年月日,如 20210612
  时间:时分秒,如 20:45:50
  Python标准库中包含日期(date)和时间(time)的数据类型,还有日历方面的功能。要比较系统的学习该模块,需要了解下面的两个概念。
  UTC(全球标准时间): 是全球范围内计时的科学标准,它基于精心维护的原子钟,在全球范围内精确到微秒,由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC。作为全球最精确的时间系统,天文学家、航海家、"太空跟踪网"(DSN) 以及其他科学性学科都使用它,它的参考点是英国格林威治标准时间(GMT):地球本初子午线的午夜,也是 UTC 的午夜 (00:00:00.000000)。本地时间是根据地球上不同时区所处的位置调整 UTC 得来的,比如当美国加州的太平洋时间为正午 12:00:00 时,UTC 为 20:00:00。
  夏令时(DST): 表示为了节约能源, 人为规定时间的意思。也叫夏时制,夏时令(Daylight Saving Time:DST),又称"日光节约时制"和"夏令时间",在这一制度实行期间所采用的统一时间称为"夏令时间"。一般在天亮早的夏季人为将时间调快一小时,可以使人早起早睡,减少照明量,以充分利用光照资源,从而节约照明用电。各个采纳夏时制的国家具体规定不同。全世界有近110个国家每年要实行夏令时。
  感知型"和"简单型"对象: 日期和时间对象可以根据它们是否包含时区信息而分为"感知型"和"简单型"两类。充分掌握应用性算法和政治性时间调整信息例如时区和夏令时的情况下,一个 感知型 对象就能相对于其他感知型对象来精确定位自身时间点。感知型对象是用来表示一个没有解释空间的固定时间点。简单型对象没有包含足够多的信息来无歧义地相对于其他 date/time 对象来定位自身时间点。
  时间戳: Unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp) import time  time.time()  1625483470.3409266
  一、datetime模块概
  Python内置的时间模块datetime包含下面的模块包含六个类和两个常数,提供了用于处理日期和时间的类和对应的方法,一般用于处理年、月、日、时、分、秒的统计和计算等需求,且这些类型的对象都是不可变的。最常用的是datetime.datetime ,有些人误以为就一个模块,其实是datetime模块下的datetime类。
  常量、类或方法名
  注解
  datetime.date
  一个理想化的简单型日期,它假设当今的公历在过去和未来永远有效。属性包含: year, month, day。
  datetime.time
  一个独立于任何特定日期的理想化时间,它假设每一天都恰好等于 24*60*60 秒。这里没有"闰秒"的概念) 包含属性:hour、minute、second、microsecond 、tzinfo。
  datetime.datetime
  是日期和时间的结合,属性包含year、month、day、hour、minute、second、 microsecond、 tzinfo.表示日期时间
  datetime.timedelta
  表示两个 date 对象或者 time 对象,或者 datetime 对象之间的时间间隔,精确到微秒。
  datetime.tzinfo
  一个描述时区信息对象的抽象基类。用来给datetime和time类提供自定义的时间调整概念(例如处理时区和/或夏令时)。
  datetime.timezone
  一个实现了tzinfo抽象基类的子类,用于表示相对于世界标准时间(UTC)的偏移量。
  datetime.MINYEAR
  常量,表示年份允许的最小值为1
  datetime.MAXYEAR
  常量,表示年份允许的最大值为9999
  书接上回,接着写 二、datetime.date类
  1、date类介绍
  作用: date类用来处理日期信息
  语法: date类是datetime的内嵌类,实例化语法:datetime.date(year, month, day)
  参数: year年份、month月份及day日期,所有参数都是必要的, 参数必须是在下面范围内的整数
  MINYEAR <= year <= MAXYEAR
  1 <= month <= 12
  1 <= day<= 给定年月对应的天数
  如果参数不在这些范围内,则抛出 ValueError 异常。 import datetime t = datetime.date(2019,8,26) print(type(t)) print(t.day,t.month,t.year) #  26 8 2019
  通过内置函数dir,可以查看date类的所有方法和属性 from datetime import date print(dir(date)) ["ctime", "day", "fromisocalendar", "fromisoformat", "fromordinal",  "fromtimestamp", "isocalendar", "isoformat", "isoweekday", "max",  "min", "month", "replace", "resolution", "strftime", "timetuple",  "today", "toordinal", "weekday", "year"]
  2、类方法
  date.today()
  作用: 返回当前的本地日期,等价于date.fromtimestamp(time.time())。 from datetime import date  date.today() datetime.date(2021, 7, 4)
  date.fromtimestamp()
  作用:返回对应于POSIX时间戳的当地时间,例如 time.time() 返回的就是时间戳。这可能引发 OverflowError,如果时间戳数值超出所在平台 C localtime() 函数的支持范围的话,并且会在 localtime() 出错时引发 OSError。通常该数值会被限制在 1970 年至 2038 年之间。请注意在时间戳概念包含闰秒的非 POSIX 系统上,闰秒会被 fromtimestamp() 所忽略。
  在 3.3 版更改: 引发 OverflowError 而不是 ValueError,如果时间戳数值超出所在平台 C localtime() 函数的支持范围的话,并会在 localtime() 出错时引发 OSError 而不是 ValueError。
  用法: date.fromtimestamp(timestamp) from datetime import date date.fromtimestamp(1339119900000/1e3).strftime("%Y-%m-%d %H:%M") "2012-06-07 00:00" date.fromtimestamp(1339120800000/1e3).strftime("%Y-%m-%d %H:%M") "2012-06-07 00:00"
  注意: unix时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。
  date.fromordinal()
  作用:返回对应于预期格列高利历序号的日期,其中公元 1 年 1 月 1 晶的序号为 1。
  用法:date.fromordinal(ordinal)from datetime import date d = date.fromordinal(730920) # 730920th day after 1. 1. 0001 d datetime.date(2002, 3, 11)
  date.fromisoformat()
  作用:返回一个对应于以 YYYY-MM-DD 格式给出的 date_string 的 date 对象
  用法:date.fromisoformat(date_string)from datetime import date date.fromisoformat("2019-12-04") datetime.date(2019, 12, 4)
  这是 date.isoformat() 的逆操作。它只支持 YYYY-MM-DD 格式。更通用的要用strptime d.isoformat() "2002-03-11"
  date.fromisocalendar()
  作用: 返回指定 year, week 和 day 所对应 ISO 历法日期的 date。这是函数 date.isocalendar() 的逆操作。
  用法:date.fromisocalendar(year, week, day)
  今年的42周第三天是10月20号date.fromisocalendar(2021, 42, 3) datetime.date(2021, 10, 20)
  3 、类属性
  date.min
  最小的日期 date(MINYEAR, 1, 1) 。 from datetime import date date.min datetime.date(1, 1, 1)
  date.max
  最大的日期 ,date(MAXYEAR, 12, 31)。 from datetime import date date.max datetime.date(9999, 12, 31)
  date.resolution
  两个日期对象的最小间隔,timedelta(days=1)。 from datetime import date date.resolution datetime.timedelta(days=1)
  date.year
  在 MINYEAR 和 MAXYEAR 之间,包含边界。 from datetime import date  d = date.today()#生成一个date对象 d datetime.date(2021, 7, 5) d.year 2021
  date.month
  1 至 12(含) #接上述案例 d.month 7
  date.day
  返回1到指定年月的天数间的数字。 #接上述案例 d.day 5
  3、实例方法
  date.replace()
  作用: 返回一个具有同样值的日期,除非通过任何关键字参数给出了某些形参的新值。
  用法: date.replace(year=self.year, month=self.month, day=self.day) from datetime import date d = date(2002, 12, 31) d.replace(day=26) datetime.date(2002, 12, 26)
  date.timetuple()
  作用: 返回一个 time.struct_time,即 time.localtime() 所返回的类型。hours, minutes 和 seconds 值均为 0,且 DST 旗标值为 -1。
  用法: date. timetuple (d) d = date(2002, 12, 31) date.timetuple(d) time.struct_time(tm_year=2002, tm_mon=12, tm_mday=31,  tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=365,  tm_isdst=-1)
  date.toordinal()
  作用: 返回日期的预期格列高利历序号,其中公元 1 年 1 月 1 日的序号为 1。对于任意 date 对象 d,date.fromordinal(d.toordinal()) == d。 d = date(1, 1, 1) d.toordinal() 1 d = date(2002, 12, 31) d.toordinal() 731215 date.fromordinal(d.toordinal()) datetime.date(2002, 12, 31)
  date.weekday()
  作用: 返回一个整数代表星期几,星期一为0,星期天为6。 date(2002, 12, 4).weekday() 2
  date.isoweekday()
  作用: 返回一个整数代表星期几,星期一为1,星期天为7。 date(2002, 12, 4).isoweekday() 3
  date.isocalendar()
  作用:返回一个由三部分组成的 named tuple 对象: year, week 和 weekday。
  ISO 历法是一种被广泛使用的格列高利历。ISO 年由 52 或 53 个完整星期构成,每个星期开始于星期一结束于星期日。一个 ISO 年的第一个星期就是(格列高利)历法的一年中第一个包含星期四的星期。这被称为 1 号星期,这个星期四所在的 ISO 年与其所在的格列高利年相同。
  例如,2004 年的第一天是星期四,因此 ISO 2004 年的第一个星期开始于 2003 年 12 月 29 日星期一,结束于 2004 年 1 月 4 日星期日.from datetime import date date(2003, 12, 29).isocalendar() (2004, 1, 1) # 旧版本 datetime.IsoCalendarDate(year=2004, week=1, weekday=1) # 新版本 date(2004, 1, 4).isocalendar() datetime.IsoCalendarDate(year=2004, week=1, weekday=7)
  在 3.9 版更改: 结果由元组改为 named tuple。
  date.isoformat()
  作用: 返回一个以 ISO 8601 格式 YYYY-MM-DD 来表示日期的字符串
  用法: date. isoformat (d) from datetime import date date(2021, 10, 1).isoformat() "2021-10-01"
  这是 date.fromisoformat() 的逆操作。
  date.__str__()
  作用: 对于日期对象 d, str(d) 等价于 d.isoformat() 。
  用法:date.__str__(d)from datetime import date date(2021, 10, 1).__str__() "2021-10-01" str(date(2021, 10, 1)) "2021-10-01"
  date.ctime()
  作用: 返回一个表示日期的字符串,在原生 C ctime() 函数 (time.ctime() 会发起调用该函数,但 date.ctime() 则不会) 遵循 C 标准的平台上。 from datetime import date date(2021, 10, 1).ctime() "Fri Oct  1 00:00:00 2021"
  d.ctime() 等效于 time.ctime(time.mktime(d.timetuple())) d=date(2021, 10, 1) import time time.ctime(time.mktime(d.timetuple())) "Fri Oct  1 00:00:00 2021"
  date.strftime()
  作用:翻译下就是 str from time ,将给定格式的日期时间对象转换为字符串。日期时间对象=>字符串 ,控制日期时间对象的输出格式,date、datetime、time对象都支持strftime(format) 方法,可用来创建由一个显式格式字符串所控制的表示时间的字符串。要获取格式指令的完整列表,查看文末列表。
  用法:date.strftime(format)
  掌握了这个方法,随心所以的转换日期格式import datetime dt=datetime.date(2021, 10, 1)#创建一个日期对象 dt.strftime("%Y-%m-%d") "2021-10-01" dt.strftime("%Y年%m月%d日") "2021年10月01日" dt.strftime("%Y//%m//%d") "2021//10//01" dt.strftime("%Y-%m-%d %H:%M") "2021-10-01 00:00" dt.strftime("%A, %d. %B %Y %I:%M%p") "Friday, 01. October 2021 12:00AM"
  date.__format__(format)
  与 date.strftime() 相同。此方法使得为 date 对象指定以 格式化字符串字面值 表示的格式化字符串以及使用 str.format() 进行格式化成为可能。虽然不建议使用这个装逼,但是遇到别人装逼的时候我们得知道。要获取格式指令的完整列表,请看文末附表 import datetime dt=datetime.date(2021, 10, 1)#创建一个日期对象 dt.__format__("%Y年%m月%d日") "2021年10月01日"
  4、支持的运算
  date2 = date1 + timedelta
  date2 等于从 date1 减去 timedelta.days 天。(1)
  date2 = date1 - timedelta
  计算 date2 的值使得 date2 + timedelta == date1。(2)
  timedelta = date1 - date2
  (3)
  date1 < date2
  如果 date1 的时间在 date2 之前则认为 date1 小于 date2 。(4)

三大电信运营商骗了多少中国人,你知道吗?有手机的都受骗。我们知道有用吗?不知道!我自己没有被骗的感觉,手机和网络使用很正常,费用也还是在正常范围内!同时在选择套餐时是由自己选择的,并没有强制性的要求必须用高价套餐的现象!全画幅单反和普通单反的区别在哪里?感谢邀请。首先区别在于他们价格不一样,十分简单道理,一分价钱一分货。全画幅和半幅,一个贵一个便宜,从价格上,就知道它们的区别了撒。全画幅单反或者微单,在像素画质成像效果等,都远远好互联网废品回收加盟靠谱吗?废话不多说!直接上干货!近期有关注再生资源回收行业的兄弟们不难发现,各大平台自媒体都打着各种互联网废品回收互联网再生资源像叫外卖一样卖废品等等字眼。互联网回收行业一下子就成火遍全网半年损失635亿,苹果公司再传噩耗,遭遇近10年来首次停产近段时间以来,号称三星机皇的高端手机GalaxyNote系列停产的消息不断传出,让不少人震惊不已,谁也没想到,和苹果手机死磕了10年的三星公司会走到这一步。但无论如何,三星旗舰手机更聪明的机器人加速赋能生产生活人形机器人轮式机器人多足异形机器人智慧农业机器人群体协作机器人近日,第二十三届中国机器人及人工智能大赛在重庆两江新区举行,近百位专家学者及业内人士展开交流探讨,逾千支高校队伍线上线Python中级精华并发之启动和停止线程目的为了让代码能够并发执行,向创建线程并在核实的时候销毁它。方法由于目的比较单纯,只是讲解基础的线程创建方法,所以可以直接使用threading库中的Thread类来实例化一个线程路由器的2。5和5g模式有啥区别?路由器的2。5和5g模式有啥区别?路由器没有2。5G模式,而是2。4G和5G两种模式。现在的路由器多数都是双频路由器,所说的双频路由器就是一个频段是2。4GHz的,另一个频段是5G今年多位大网红被封,网红时代是要受到限制了吗?现在是互联网5G时代,网红代言人也要懂法学法守法!做任何事(直播,抖音,代言,广告宣传等)都要合法合规,不能为博取大众点评或吸引眼球或提高点击率来抬高自己,夸大其词,娇柔做作,或作云主机和虚拟主机有什么区别?云主机是云服务器吗?区别在于自由程度,云主机相当于一台服务器,可以任意安装你需要的系统程序或是网站环境,虚拟主机是商家已经安装好了支持网站的环境,只给你一部分空间,你除了上传和访问数据,没别的权限。云英特尔公布突破摩尔定律新技术3D堆叠芯片互联密度提升十倍IT之家12月12日消息,根据外媒VideoCardz报道,英特尔今日发表文章,公布了突破摩尔定律的三种新技术。这些技术的目标是在2025年之后,还能够使得芯片技术继续发展。在在2冰箱一级二级三级能效有什么区别冰箱一级二级三级能效有什么区别随着时代的发展,冰箱早已经走进了千家万户,人们的生活也离不开冰箱,当我们挑选冰箱的时候,会发现市面上的种类有很多,下面就给大家介绍下冰箱的一级二级三级
千元级防抖手机稳定器浩瀚M5上市,专业视频拍摄首选4月21日浩瀚卓越发布M系列经典款全新升级产品浩瀚M5。作为一款专业级手机稳定器,浩瀚M5在稳定性能运镜效果等各方面都做出了很大提升,是拍摄专业视频爱好者的首选好帮手。近几年手机稳一加Ace发布会直播天玑8100150W快充,快稳狠的王牌今天晚上1900,一加将正式发布新机,基于天玑8100处理器150W超级闪充IMX766传感器打造的一加Ace。从一加已经官方发布的信息来看,一加Ace外观上采用直角边框设计,镜头新PlayStore策略将封杀所有第三方通话录音应用以MIUI和ColorOS等定制ROM都集成了通话录音功能,在启用之后可以实现自动录音。但由于不同市场的法律要求,这项功能在Android手机上并不常见。如果你的手机并未集成该功能声阔智能眼镜一副普通眼镜价格耳机眼镜的双重体验?前两天一朋友跟我聊天。他提到因为用入耳式耳机太多,年纪轻轻就整了个中耳炎。医生建议是少戴耳机。但咱毕竟是文明人,地铁通勤听歌看视频,总不能外放音量Max吧?于是我给他三个解决方案。基于知名微服务框架gomicro开发gRPC应用程序gomicro是golang的一个微服务框架。gomicro各个版本之间的兼容性问题一直被诟病,前几年gomicro更是分化出了两个分支一个延续了gomicro,只不过转到了其公司2022年4月更新手机处理器排行榜这里是太平洋知科技,如果本文对你有帮助,欢迎点赞关注我。往期精彩回顾2022年(最新)DIY电脑配置推荐配置清单通用篇作为忠实的科技爱好者,在当今人手一部,甚至多部手机的时代,对手1799元起步!realme真我Q5Pro和红米K40S相比较,如何选择?红米K40S是上代红米K40的延续版本,主要补足了拍摄能力和充电速度短板。而真我Q5Pro一出来,明显是跟红米K40S对着干的,不论是跟红米K40S1799元的起步售价,还是整体配骁龙888不值钱了?降至1699元,VC液冷三星屏众所周知,中兴前几年来因为受到漂亮国的制裁,手机业务和华为一样一落千丈,不过即使困难再多也是无法阻止中兴前进的脚步的。貌似从2021年开始,中兴慢慢地缓过气来了,给市场上带来了许多iPhone14Pro另寻出路感叹号打孔屏让人惊喜,库克这次方向对了苹果从iPhoneX开始,万年不变的刘海屏一直延续使用到了iPhone13系列上,每次传闻苹果要取消iPhone上的刘海屏,但是每次都没有能够如愿以偿。不过令人果粉稍微欣慰的一件事字节跳动28岁工程师猝死,我想到了什么字节跳动28岁算法工程师猝死,留下怀孕两个月的妻子,没有工作没有收入,从此要独自背负30年,每个月2。1万的房贷,她在社交平台哭诉,希望可以退房退款,自己一人实在无力承担下个月的房你听的有声书可能不是人录制的,AI超拟真有声书有多真?科幻网4月21日讯(秦莹莹)在现今日新月异的科技背景下,阅读也已经换了很多方式。以前我们只能捧着实体书籍阅读,但有一定阅读局限性,晚上阅读光线不好可能伤害眼睛,也不方便随时携带阅读