Python中日期时间相关

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Python提供了许多内置模块来处理日期和时间相关的功能。其中最常用的有datetime模块、time模块以及calendar模块。


一、datetime

在Python中,有一个内置的时间模块叫做datetime。它提供了处理日期和时间的功能。以下是几个主要的类和函数:

  • date :日期
  • time :时间
  • datetime:日期时间
  • timedelta:时间增量

1.date日期

表示日期,下方是几个常用方法

  • date.today() :直接获取今天日期
  • date(year=2024, month=1, day=10):构造指定日期 { date(年, 月, 日) }
  • strftime():将时间元组格式化为指定格式的字符串

格式化中:%y两位年 ; %Y四位年 ; %m两位月 ; %d两位日

  • weekday():返回周(星期几)

返回周中需要注意的是:从星期一开始到星期六分别为0 - 6,不要弄错

代码示例如下:

# 导入库/模块
from datetime import date

# 使用数字构造日期
# 直接获取今天日期
date0 = date.today()
# 构造指定日期
# date(年, 月, 日)
date0 = date(2024, 1, 10)
# 另一种写法: date(year=2024, month=1, day=10)
print(type(date0))  # datetime.date

# 取得日期中的每一部分
print(date0.year, date0.month, date0.day)
print(f"{date0.year}--{date0.month}--{date0.day}")
# %y两位年   %Y四位年   %m两位月   %d两位日
print(date0.strftime("%y-%m-%d"))  # 24-01-10
print(date0.strftime("%Y-%m-%d"))  # 2024-01-10
print(date0.weekday()) # 2   星期一为0,周六为6

2.time时间

用于处理时间的类,包括时、分、秒、微秒。
常用方法:

  • time(hour=17, minute=1, second=30):构造指定时间,{ time(时, 分, 秒) }
  • strftime():将时间元组格式化为指定格式的字符串

格式化中:%H时 ;%M分 ; %S秒

代码示例如下:

time0 = time(hour=17, minute=1, second=30)

print(type(time0)) # <class 'datetime.time'>
print(time0.hour, time0.minute, time0.second) # 17  1  30
# %H时   %M分钟   %S秒
print(time0.strftime("%H:%M:%S")) # 17:01:30

后续为了方便,将导入模块直接导入完成,省得每次都写٩(◕‿◕。)۶

from datetime import date, time, datetime, timedelta

3.datetime日期时间

用于同时处理日期和时间的类,包括年、月、日、时、分、秒、微秒
常用方法:与date和time的类似,同时还包含其他用法:

  • datetime.now():返回当前的日期和时间
  • datetime.today():返回当天的日期和时间
    代码示例如下:
# 当前时间
datetime0 = datetime.now()
print(datetime0)  # 2024-01-10 17:28:23.315895

datetime0 = datetime(year=2024, month=1, day=10, hour=17, minute=22, second=46)

print(type(datetime0))
print(datetime0.year, datetime0.month, datetime0.day, datetime0.hour, datetime0.minute, datetime0.second)
# 结果2024  1  10  17  22  46
print(datetime0.strftime("%Y-%m-%d  %H:%M:%S"))  # 2024-01-10  17:22:46

4.timedelta时间增量

在Python中,timedelta是一个用来表示时间增量的类。它可以用来操作和计算日期和时间。

timedelta对象可以用来表示一段时间,包括天、小时、分钟、秒等。你可以使用timedelta来将日期和时间增加或减少一定的时间。

代码示例如下:

now = datetime.now()
print(now.strftime("%Y-%m-%d  %H:%M:%S"))  # 2024-01-11  15:53:11

timedelta0 = timedelta(weeks=1, days=1, seconds=30, hours=2)
print(timedelta0.days, timedelta0.seconds)  # 8 7230   8天=1周+1天  

future = now +timedelta(weeks=2, hours=2)
print(type(future), future.strftime("%Y-%m-%d  %H:%M:%S"))
# <class 'datetime.datetime'> 2024-01-25  17:53:11

future = now - timedelta(hours=8)
print(type(future), future.strftime("%Y-%m-%d  %H:%M:%S"))
# <class 'datetime.datetime'> 2024-01-11  07:53:11

二、time时间

在Python中,time模块提供了对时间的访问和处理的功能。它可以用于测量程序运行的时间,以及进行时间的转换、格式化等操作。

time模块是python中内置的模块,不用从其他地方导入==>import time

以下是time模块的一些常用方法和函数:

  • time():返回当前时间的秒数,从1970年1月1日0时开始到现在的秒数,又叫时间戳
  • sleep():程序阻塞/休眠/等待()秒
  • strftime(格式化字符串,(时间元组形式)):格式化字符串
  • localtime():获取当前\当地的时间结构体

通过使用time模块,我们可以对时间进行各种操作,如获取当前时间、休眠程序、格式化时间、计算时间差等。这使得处理时间相关的任务变得更加简单和方便

代码示例如下:

# python内置时间模块
import time

time.sleep(3)  程序阻塞/休眠/等待3print(1)
time.sleep(3)
print(2)
time.sleep(3)
print(3)
time.sleep(3)
print(4)
time.sleep(3)
print(5)
time.sleep(3)

# time.time整数部分是从1970-1-1 0时开始计算的秒数
# 名称:时间戳
print(time.time())  # 1704936742.2946222
time.sleep(5)
print(time.time())  # 1704936747.2946222
time.sleep(5)
print(time.time())  # 1704936752.295482

# time.strftime(格式化字符串, (时间元组形式))
print(time.strftime("%Y-%m-%d %H:%M:%S", (2001, 6, 9, 8, 7, 56, 25, 0, 0)))  
# 2001-06-09 08:07:56

# 获取当前(本地)时间结构体
print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))  # 2024-01-11 09:43:54

三、calendar日历

Calend模块提供了一些方便的功能来处理日期和时间。它包含了创建、修改和查询日历事件的方法。

它的导入与time一样 ==> import calendar

常用方法:

  • calendar():获取年历
  • month():获取月历
  • weekday() :返回周几
  • isleap():判断是否闰年–True or False

代码示例如下:

import calendar

print(calendar.calendar(2024)) # 2024年整年的年历
print(calendar.month(2024, 1))  # 2024-01月历
print(calendar.weekday(2024, 1, 11))  # 返回周几
print(calendar.isleap(2024))  # 判断是否闰年--True

总结

以上就是今天要讲的内容,本文简单介绍了在python中与日期时间相关模块的使用。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值