Python中的对日期时间的处理

作者: 919b0c54458f | 来源:发表于2019-05-15 21:47 被阅读3次
    image

    我们可以通过学习在Python中对日期时间的处理,可以在快速的完成工作,比如:

    • 将日期时间作为日志信息的内容输入
    • 计算某一个功能的执行时间
    • 用日期命名一个文件的名称
    • 记录或者展示文件的发布或修改时间
    • 其他工作

    在Python的程序可以使用很多的方式处理日期和时间,转换日期格式是一个常见的功能。Python中提供了一个time和calender的模块可以用来做格式化日期和时间的。时间间隔都是以秒为单位的浮点小数。

    在电脑中的时间都是由CPU储存,所以一般呢也叫做CPU时间, cpu时间是计算从1970年1月1日0点0分到目前这个时间点所经历的的秒数来表示,同时又可以称为时间戳。

    1.time模块

    1.1导入time模块

    首先使用import导入time模块

    1.2查看时间戳

    使用time.time函数查看当前的时间戳为多少,time.time的作用是返回当前时间的时间戳

    1.3返回当地时间

    使用time.localtime函数,将当前时间戳返回为本地的时间,返回的参数有9个:

    序号属性字段值0Tm_year4位数年20081tm_mon月1-122tm_mday日1-313tm_hour小时0-234tm_min分钟0-595tm_sec秒0-61(60或61 是闰秒)6tm_wday一周的第几日0-6(0为周一)7tm_yday一年的第几日1-365(儒略历)8tm_isdst夏令时-1,0,1 -1是决定是否为夏令时的旗帜

    可以通过这9个返回的参数判断当前的时间

    1.4暂停代码运行时间

    time.sleep暂停代码的运行时间,time.sleep函数的作用是推迟调用线程的运行,可以通过参数Secs指秒数,表示进程挂起的时间。

    1.5计算时间点

    函数time.clock是以浮点数计算的秒数返回当前的CPU时间。这个函数在不同的系统上的含义也是不同的, 在UNIX系统上,它返回的是"进程时间",它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter为基础,它比毫秒表示更为精确)

    1.6获取格式化的时间

    我们可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime:

    Time.asctime函数接受时间元组并返回一个可读的形式”5月7日,周天,13点20分26秒,2017年”的24个字符的字符串。参数是9个元素的元组或者通过函数Gmtime或localtime函数返回的时间值。

    1.7格式化日期

    通过time模块中strftime方法来格式化日期:


    image

    Time.strftime函数接收时间元组,并返回以可读字符串表示薪资的时间,格式的话由参数format决定。

    1.8解析时间

    Time.strptime(str,fmt=’%a %b %d %H:%M:%S %Y’)根据fromt的格式把一个时间字符串解析为时间元组。

    image

    在Python中有22个时间日期的格式化符号,通过这些符号就可以设置参数format了:

    • %y 两位数的年份表示(00-99)
    • %Y 四位数的年份表示(000-9999)
    • %m 月份(01-12)
    • %d 月内中的一天(0-31)
    • %H 24小时制小时数(0-23)
    • %I 12小时制小时数(01-12)
    • %M 分钟数(00=59)
    • %S 秒(00-59)
    • %a 本地简化星期名称
    • %A 本地完整星期名称
    • %b 本地简化的月份名称
    • %B 本地完整的月份名称
    • %c 本地相应的日期表示和时间表示
    • %j 年内的一天(001-366)
    • %p 本地A.M.或P.M.的等价符
    • %U 一年中的星期数(00-53)星期天为星期的开始
    • %w 星期(0-6),星期天为星期的开始
    • %W 一年中的星期数(00-53)星期一为星期的开始
    • %x 本地相应的日期表示
    • %X 本地相应的时间表示
    • %Z 当前时区的名称
    • %% %号本身

    2.Calendar模块

    Calendar模块是与日历相关的模块,但也有很广泛的方法来处理年历和月历,例如打印某月的月历:


    image

    使用claendar.month函数生成月份的日历。

    在claendar模块中有12种函数,是比较常用的:

    2.1 calendar.calendar(year,w=2,I=1,c=6,m=3)

    返回一个多行字符串格式的year年年历,3个月为一行,间隔距离为c,每日宽度间隔为w字符,每行长度为21w+18+2c,i是每星期行数


    image

    2.2calendar.firstweekday

    2.3calendar.isleap(year)

    2.4calendar.leapdays(y1,y2)

    2.5calendar.month(year,month,w=2,i=1)

    返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符,每行的长度为7*w+6,I是每星期的行数。


    image

    2.6calendar.monthcalendar(year,month)

    返回一个整数的单层嵌套列表,每个子列表装载代表一个星期的整数,year年month月外的日期都设为0,范围内的日子都由该月第几日表示,从1开始。

    Python直播学习群:556370268,这里有资源共享,技术解答,还有小编从最基础的Python资料到项目实战的学习资料都有整理,希望能帮助你更好的学习python。

    2.7 calendar.monthrange(year,month)

    返回两个整数,第一个是该月第一天是星期几的日期码,第二个是该月天数的日期码,天是从0(星期一)到6(星期日);月是从1-12。

    2.8calendar.prcal(year,w=2,i=1,c=6)

    相当于是print(calendar.calendar(year,w,I,c))


    image

    2.9calendar.prmonth(year,month,w=2,i=1)

    相当于print(calendar.calendar(year,w,I,c))

    image

    2.10 calendar.setfirstweekday(weekday)

    设置每周的起码日期码。0(星期一)到6(星期日)

    2.11 calendar.timegm(tupletime)

    和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970年后的浮点秒数)

    2.12 calendar.weekday(year,month,day)

    返回给定日期的日期码。0(周一)到6(周日),月份为1-12。

    3.datetime模块

    Datetime模块是Python处理日期和时间的标准库

    3.1获取当前的日期


    image

    Datetime.now函数的作用是返回当前日期和时间,返回的类型是datetime

    3.2获取指定日期和时间

    如果要指定某个日期和时间呢,我们直接用参数构造一个datetime也是可的:

    通过datetime函数,直接输入年月日时分的参数,来构造一个指定的日期和时间

    3.3datetime转换为timestamp

    在计算机中,时间实际上是用数字表示的,我们把1970年1月1日,00:00:00 UTC+00;00时区的时刻成为epoch time,记为0(1970年之前的时间戳为负数),当前时间就是相对于Epoch time的秒数,可以成为timestamp。

    可以理解为:

    Timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00

    拓展知识UTC 和 Epoch time

    UTC time,Coordinated Universal Time,世界标准时间又称为格林尼治时间,与UTCTime对应的是各个时区的localtime,东N区的时间比UTC时间早N个小时因此UTC+N小时,即为东N区的本地时间;而西N区时间比UTC时间玩N个小时,即UTC time – N小时即为西N区的本地时间;中国在东8区,因此比UTC时间早了八个小时,可以以UTC+8进行表示。

    Epoch time表示时间开始的七点;是一个特定的时间,不同平台上的时间点不同,对于Unix而言,epoch time 为1970-01-01 00:00:00 UTC

    首先转换为时间戳格式

    将时间戳格式的时间转换为字符串日期时间

    设置时间的格式

    3.4 datetime加减

    对于日期和时间进行加减实际上呢就是把日期时间datetime往后或者往前计算,得到新的日期时间datetime。加减可以直接运用+和-预算符,不过需要呢导入timedelta这个datetime模块下的类

    在现在的时间加上10个小时的时间

    在现在的时间上减去一天的时间

    在现在的时间上加上2天12小时的时间

    Python直播学习群:556370268,这里有资源共享,技术解答,还有小编从最基础的Python资料到项目实战的学习资料都有整理,希望能帮助你更好的学习python。

    相关文章

      网友评论

        本文标题:Python中的对日期时间的处理

        本文链接:https://www.haomeiwen.com/subject/ngqvaqtx.html