资讯专栏INFORMATION COLUMN

Python中的对日期时间的处理

techstay / 632人阅读

摘要:中提供了一个和的模块可以用来做格式化日期和时间的。格式化日期通过模块中方法来格式化日期函数接收时间元组并返回以可读字符串表示薪资的时间格式的话由参数决定。每日宽度间隔为字符每行的长度为是每星期的行数。

我们可以通过学习在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方法来格式化日期:

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

1.8解析时间

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

在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模块是与日历相关的模块,但也有很广泛的方法来处理年历和月历,例如打印某月的月历:

使用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是每星期行数

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是每星期的行数。

2.6calendar.monthcalendar(year,month)

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

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))

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

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

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获取当前的日期

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小时的时间

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43609.html

相关文章

  • 关于Python日期处理

    摘要:格式化日期首先获取时间输出的结果是但是这样是一连串的数字不是我们想要的结果,我们可以利用模块的格式化时间的方法来处理用方法,作用是格式化时间戳为本地的时间。 格式化日期 首先获取时间 import time print(time.time()) 输出的结果是: 1511495129.260231 但是这样是一连串的数字不是我们想要的结果,我们可以利用time模块的格式化时间的方法来处理...

    YJNldm 评论0 收藏0
  • python日期时间处理总结

    摘要:用了一段时间的开发项目,也是第一次用来开发项目,所有有许多相关的知识点需要总结,本文所介绍的的日期时间处理就是最近用到的,希望对各位有所帮助,也同时作为自己的笔记储存。提供了等模块用于处理日期和时间,较为常用的还是模块。 用了一段时间的django开发web项目,也是第一次用python来开发项目,所有有许多相关的知识点需要总结,本文所介绍的python的日期时间处理就是最近用到的,希...

    DoINsiSt 评论0 收藏0
  • 教你用python日期中获取年、月、日和星期等30种信息

      Python的作用还是比较的广泛的,在日常生活中,应用范围也比较的广泛,比如,我们可以去利用python,以此来获取年月日等相关的一些信息,具体的内容是什么呢?下面就给大家详细的解答下。  这次介绍日期数据处理。  用python中的方法对日期数据进行处理,我们可以获取很多有用的信息,比如年月日,星期,周次,季度等,这里分享工作和数据竞赛30余种常用的转换方法。  1计算日期的年月日时分秒,星...

    89542767 评论0 收藏0
  • PyTips 0x11 - Python 时间日期

    摘要:项目地址时间和日期可能涉及到不同的时区格式,同时又经常需要作为时间戳保存,有时候还需要进行一些加减操作,因此处理起来通常会因为方法太多而无从下手。中与时间和日期相关的标准库有个和。 项目地址:https://git.io/pytips 时间和日期可能涉及到不同的时区、格式,同时又经常需要作为时间戳保存,有时候还需要进行一些加减操作,因此处理起来通常会因为方法太多而无从下手。Python...

    2501207950 评论0 收藏0
  • Python时间日期使用小结

    摘要:对于日期的操作可以说是比较常见的了日期与格式化字符串互转,日期与时间戳互转,日期的加减操作等,下面主要介绍下常见的需求场景如何实现基本包引入主要需要引入时间和日期的处理包,后面的基本操作都是基于此获取当前时间获取当前时间,有几种方式 对于日期的操作可以说是比较常见的case了,日期与格式化字符串互转,日期与时间戳互转,日期的加减操作等,下面主要介绍下常见的需求场景如何实现 1. 基本...

    BigNerdCoding 评论0 收藏0

发表评论

0条评论

techstay

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<