• Python时间处理


    在这里想做一个初学者的教程,会不断的更新下去,把学到的有关Python时间处理的内容总结起来。初学者笔记最重要的有两点,一个是要简洁,不要长篇大论,把要点讲明白就行,第二个是要符合二八原则,尽量抓住关键的东西,不要过分的追求大而全,优先掌握关键的20%内容就很可以了。

    time模块

    Python时间处理,绕不过去的就是time模块,虽然这个模块用来做时间处理并不是很便捷,但是作为Python的内置模块,还是需要掌握基本的用法的。

    学习时间处理,我们首先要理解,什么是时间?

    关于时间的概念,简单来说,分为两个意思,时刻和时长。时刻就是时间坐标轴上的一个点,时长是一个线段。

    time模块是基本用法是用来处理时刻的,在time模块中,时刻有3种表示方式

    • 时间戳(timestamp),是从1970年1月1日零时刻开始的一个秒数。
    • 时间元组(time tuple),是time模块中,用整数组合来表示时刻的方法。
    • 格式化字符串(format string),就是我们日常的用字符串表示一个时刻,例如“2021-01-01 10:00:00”。

    明确这3个概念,然后就可以学习time模块的几个基本的方法。

    time.time()

    返回一个浮点数,获取当前时间戳。

    time.mktime(arg)

    接收一个时间元组参数,返回对应的时间戳。

    time.localtime(arg)

    接收一个时间戳参数,返回对应的时间元组对象。不带参数,返回当前时刻对应的时间元组对象。

    time.strftime(format_string,struct_time)

    format_string表示一个格式化字符串的表示方式,用%Y表示4位年份,%m表示月,%d表示日,%H表示时,%M表示分,%S表示秒。通过不同的组合,来表示想要的字符串格式,例如使用"%Y-%m-%d %H:%M:%S"来表示"2021-01-01 10:00:00"这种格式,使用"%Y年%m月%d日"来表示"2021年1月1日"这种格式。

    struct_time是一个时间元组。整个方法就是把一个时间元组按照指定格式,返回一个字符串。不带struct_time参数的时候,默认指当前时刻。

    time.strptime(time_string,format_string)

    将一个时间字符串转化成对应的时间元组。time_string和format_string要格式对应才能正确转换。

    time.sleep(n)

    这个方法,让当前线程沉睡(挂起)n秒。

    简单总结一下,我感觉time模块掌握这6个方法就够了。time.time和time.sleep单独记,time.mktime和time.localtime是时间戳和时间元组的相互转换,time.strftime和time.strptime是字符串和时间元组的相互转换。

    最后补充一个内容,就是时间元组对象struct_time对象的使用。struct_time对象可以简单理解为(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)这样一个包含9个元素的元组。可以使用元组下标的方式获取元素的值,也可以使用obj.tm_year属性的方式获取指定的值。

    datetime模块

    相比time模块,datetime模块在使用起来更方便,也更常用。

    使用datetime模块,学会使用其中的datetime类和timedelta类就足够了。

    datetime类

    datetime类是datetime模块中表示日期时间的类,还有两个date类和time类,用法大同小异,不用单独学习。

    导入使用: from datetime import datetime

    学习一个类的使用,一般从两个方面,一是实例对象的创建,二是对象的属性和方法。

    datetime类实例对象的创建

    dt = datetime(year,month,day,hour,minute,second)

    通过构造函数指定具体的数值来创建,以上参数默认值都是0.

    dt = datetime.today() 或者 dt = datetime.now()

    获取当前时刻的dt对象。

    dt = datetime.fromisoformat(string)

    通过string='2021-01-01 10:30:00'标准格式获取dt对象。

    dt = datetime.fromtimestamp(n)

    通过指定一个时间戳来创建。

    dt = datetime.strptime(string,format_string)

    类似time.strptime,将一个字符串转化成dt对象。

    datetime类实例对象的属性

    dt.year/dt.month/dt.day/dt.hour/dt.minute/dt.second

    datetime类实例对象的方法

    dt.isoformat() 返回标准字符串

    df.isoweekday() 返回星期几

    dt.timetuple() 返回time.struct_time类型

    dt.strftime(format_string) 返回指定格式字符串

    dt.timestamp() 返回对应的时间戳

    timedelta类

    前面说的时间类型都是时刻表达,下面说的timedelta类是时长的表达。

    创建timedelta类实例对象

    td = 两个时间对象的差值

    td = timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

    根据相应的时长来创建,比如,我想创建一个相距3天10小时的时长,就可以这样:

    td = timedelta(days=3,hours=10)

    timedelta对象的属性

    td.days、td.seconds、td.microseconds只有这3个属性,其他的需要进行换算。

    timedelta对象的方法

    td.total_seconds()

    是一个浮点数,表示td对象中包含的总秒数。

  • 相关阅读:
    【Android】-- Intent(显式和隐式Intent)
    企业级高负载WEB服务器—Tomcat
    985 博士真的会舍弃华为年薪接近 100 万 offer,去选择年薪 20 万的公务员吗?
    共筑行业标准,亚信科技AntDB数据库参与多项数据库行业标准研讨会
    Camtasia Studio2023喀秋莎免费实用的屏幕录像工具
    【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit
    基于MATLAB和k-means算法实现的图像分割
    java map初始化并赋值
    JavaScript中常用数据类型,你知道几个?
    C# 泛型
  • 原文地址:https://blog.csdn.net/u013721086/article/details/126030276