标准库time、datetime的使用

本文详细介绍了Python中的time库和datetime库。time库包括时间获取、格式化和程序计时功能,如time()、strftime()和perf_counter()。datetime库提供了日期和时间处理方法,包括datetime.date、datetime.time、datetime.datetime等类。文章重点讲解了datetime.datetime类的创建及常用的时间格式化方法,如isoformat()和strftime()。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、time库

1.1time库概述

time库是Python中处理时间的标准库

  • 计算机时间的表达
  • 提供获取系统时间并格式化输出功能
  • 提供系统级精确计时功能,用于程序性能分析

1.2time库包括三类函数

  • 时间获取:time() ctime() gmtime()
  • 时间格式化:strftime() strptime()
  • 程序计时:sleep(), perf_counter()

1.3时间获取

函数描述
time()获取当前时间戳,即计算机内部时间值,浮点数
ctime()获取当前时间并以易读方式表示,返回字符串
gmtime()获取当前时间,表示为计算机可处理的时间格式
>>>import time
>>>time.time()
1554734954.0231738  #返回当前时间的时间戳(1970纪元后经过的浮点秒数)

>>>time.ctime()
'Mon Apr  8 22:54:25 2019'    #星期  月份  日期  具体时间点  年份

>>>time.gmtime()
`time.struct_time(tm_year=2019, tm_mon=4, tm_mday=8, tm_hour=14, tm_min=56, tm_sec=6, tm_wday=0, tm_yday=98, tm_isdst=0)

1.4时间格式化

将时间以合理的方式展示出来

  • 格式化:类似字符串格式化,需要有展示模板
  • 展示模板由特定的格式化控制符组成
  • strftime()方法
函数描述
strftime(tpl, ts)tpl是格式化模板字符串,用来定义输出效果ts是计算机内部时间类型变量

1.5格式化控制符

格式化字符串日期/时间说明值范围和实例
%Y年份0000~9999,例如:1900
%m月份01~12,例如:10
%B月份名称January~December,例如:April
%b月份名称缩写Jan~Dec,例如:Apr
%d日期01~31,例如:25
%A星期Monday~Sunday,例如:Wednesday
%a星期缩写Mon~Sun,例如:Wed
%H小时(24h制)Mon~Sun,例如:Wed
%h小时(12h制)01~12,例如:7
%p上/下午AM, PM,例如:PM
%M分钟00~59,例如:26
%S00~59,例如:26
>>>import time
>>>t = time.gmtime()
>>>time.strftime("%Y-%m-%d %H:%M:%S",t)
'2019-04-08 15:10:52'


>>>timeStr = '2018-01-26 12:55:20'
>>>time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=12, tm_min=55, tm_sec=20, tm_wday=4, tm_yday=26, tm_isdst=-1)
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=26, tm_hour=12, tm_min=55, tm_sec=20, tm_wday=4, tm_yday=26, tm_isdst=-1)

1.6程序计时应用

程序计时应用广泛

  • 程序计时指测量起止动作所经历时间的过程
  • 测量时间:perf_counter()
  • 产生时间:sleep()
函数描述
perf_counter()返回一个CPU级别的精确时间计数值,单位为秒由于这个计数值起点不确定,连续调用差值才有意义
sleep(s)s拟休眠的时间,单位是秒,可以是浮点数
>>>start = time.perf_counter()
>>>start
5.1199927182325785e-06

>>>end = time.perf_counter() 
>>>end
118.79227677542859

>>>end - start
118.79227165543587

sleep()

>>>def wait():
       		time.sleep(3.3)
>>>wait() #程序将等待3.3秒后再退出

2、datetime 库

要点:python时间处理的标准函数库datetime提供了一批显示日期和时间的格式化方法

2.1 datetime库概述

  • 以不同格式显示日期和时间是程序中最常用到的功能。python提供了一个处理时间的标准函数库,datetime,它提供了一系列有艰难单到复杂的时间处理方法。datetime库可以从系统中获得时间,并以用户选择的格式输出。

  • datetime库以格林威治时间为基础,每天由3600×24秒精准定义。该库包括两个常量:datetime.MINYEAR和datetime.MAXYEAR,分别表示datetime所能表示的最小、最大年份,值分别为1和9999。

  • datetime库以类的方式提供多种日期和时间表达方式。

    (1)datetime.date:日期表示类,可以表示年、月、日等。
    (2)datetime.time:时间表示类,可以表示小时、分钟、秒、毫秒等。
    (3)datetime.datetime:日期和时间表示类,功能覆盖date和time类。
    (4)datetime.datedelta:与时间间隔有关的类。
    (5)datetime.tzinfo:与时区有关的信息表示类。

    由于 datetime.datetime类表达形式最为丰富,这里主要介绍这个类的使用。使用datetime类需要用import保留字,引用datetime类的方式如下:

     from datetime import datetime
    

2.2 datetime 库解析

datetime类(datetime.datetime类,以下简称为datetime类)的使用方式是首先创建一个datetime对象,然后通过对象的方法和属性显示时间。创建datetime对象有3种方法:datetime.now()、datetime.utcnow()和datetime.datetime()。

1、使用datetime.now()获得当前日期和时间对象,使用方法如下:
datetime.now()
返回一个datetime类型,表示当前的日期和时间,精确到微秒。
调用改函数,执行结果如下:

>>> from datetime import datetime
>>> today = datetime.now()
>>> today
datetime.datetime(2019, 4, 13, 13, 21, 50, 755456)  # 年、月、日、时、分、秒、微秒

2、使用datetime.utcnow()获得当前日期和时间对应的UTC(世界标准时间)时间对象,使用方法如下:
datetime.utcnow()
返回一个达特time类型,表示当前的日期和时间的UTC表示,精确到微秒。
调用改函数,执行结果如下:

>>> today = datetime.utcnow()
>>> today
datetime.datetime(2019, 4, 13, 5, 26, 59, 553880)  # 年、月、日、时、分、秒、微秒

3、datetime.now()和datetime.utcnow()都返回一个datetime类型的对象,也可以直接用datetime()构造一个日期和时间兑现个,使用方法如下:
datetime(year, month, day, hour = 0, minute = 0, second = 0, microsecond = 0)

  • year:指定的年份,MINYEAR <= year <= MAXYEAR
  • microsecond:指定的微秒数,0 <= microsecond <= 1000000

调用该函数,执行结果如下:

>>> oneday = datetime(2021,6,30,9,9,9,999>>> oneday
datetime.datetime(2021, 6, 30, 9, 9, 9, 999)  # 年、月、日、时、分、秒、微秒

2.3 datetime 类常用的时间格式化方法(3个)

属性描述
datetime.isoformat()采用 ISO 8601 标准显示时间
datetime.isoweekday()根据日期计算星期后返回1~7,对应星期一到星期日
datetime.strftime(format)根据格式化字符串format进行格式显示的方法

isoformat()和isoweekday()方法的使用如下:

>>> oneday = datetime(2021,6,30,9,9,9,999>>> oneday.isoformat()
'2021-06-30T09:09:09.000999'
>>> oneday.isoweekday()
3

strftime()方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。例如下列所示,用该方法输出特定格式时间。strftime()方法的格式化控制符

>>> oneday.strftime("%Y-%m-%d  %H-%M-%S")
'2021-06-30  09-09-09'

strftime()格式化字符串的数字左侧会自动补零,上述格式也可以与print()的格式化函数一起使用,例如:

>>> now = datetime.now()
>>> now.strftime("%Y-%m-%d")
'2019-04-13'
>>> now.strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 13. April 2019 01:55PM'
>>> print("今天是{0:%Y}年{0:%m}月{0:%d}日".format(now))
今天是20190413
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值