一、获取某一日期是星期几的几种方法

1. 内置的datetime模块

所需模块为datetime模块,该模块是Python的内置模块,无需利用pip再安装。该模块可以显示日期和时间,还可进行日期和时间的运算及格式化。

1. weekday()

  • 检索日期为星期几,返回0~6的整数,代表“星期一”~“星期六”。
返回值 对应星期
0 星期一
1 星期二
2 星期三
3 星期四
4 星期五
5 星期六
6 星期日
import datetimeweek = datetime.date(2022, 11, 13).weekday()
print(week)    # 6    对应的是星期日
import datetimeweek = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日']
week_day = week[datetime.date(2022, 11, 13).weekday()]
print(week_day)    # 星期日

2. isoweekday()

  • 该方法和weekday()方法原理类似,区别是返回的整数含义不同,1~7对应星期一~星期日。
返回值 对应星期
1 星期一
2 星期二
3 星期三
4 星期四
5 星期五
6 星期六
7 星期日
import datetimeprint(datetime.date(2022, 11, 13).isoweekday())   # 7

3. strftime()

  • 返回值为字符串。可以将日期对象格式化为日期字符串。例如strftime(‘%b-%m%-y %H:%M:%S’),将参数改为“%A”即可得到日期是星期几的英文全称,将参数改为“%a”即可得到日期是星期几的英文缩写。
import datetimeprint(datetime.date(2022, 11, 13).strftime("%A"))   # Sunday
import datetimeprint(datetime.date(2022, 11, 13).strftime("%a"))   # Sun

2. 内置的calendar模块

calendar日历模块也是内置库,提供了很多处理日历的方法,可用其制作日历、周历等。可用weekday()和day_name()方法查询某日期是星期几。

1. weekday()

  • 与datetime模块中的weekday()一样。0~6对应星期一~星期日。
import calendarprint(calendar.weekday(2022, 11, 13))   # 6

2. day_name()

  • 获得日期的英文周名。
import calendardate_week = calendar.weekday(2022, 11, 13)print(calendar.day_name[date_week])   # Sunday

3. 第三方pendulum模块

  • datetime模块也有一些限制,如处理时区问题等。pendulum是第三方开源库,可解决内置datetime模块的所有问题。

1. day_of_week

返回值 对应星期
0 星期日
1 星期一
2 星期二
3 星期三
4 星期四
5 星期五
6 星期六
import pendulum    # pip install pendulumprint(pendulum.parse('2022-11-13').day_of_week)     # 0   对应星期天

4. 第三方Pandas模块

  1. dayofweek
    值为数字,0~6对应星期一~星期日。
  2. weekday
    值为数字,0~6对应星期一~星期日。
  3. day_name()
    得到日期的英文周名全称。
import pandas as pd
from datetime import datetimedf = pd.DataFrame({"name": ["张三", "李四", "朱五"],"date": [datetime(2022, 11, 13), datetime(2022, 11, 14), datetime(2022, 11, 15)]
})
print(df)
print()df['week_num1'] = df['date'].dt.dayofweek
df['week_num2'] = df['date'].dt.weekday
df['week_name'] = df['date'].dt.day_name()print(df)

运行结果:

  name       date
0   张三 2022-11-13
1   李四 2022-11-14
2   朱五 2022-11-15name       date  week_num1  week_num2 week_name
0   张三 2022-11-13          6          6    Sunday
1   李四 2022-11-14          0          0    Monday
2   朱五 2022-11-15          1          1   TuesdayProcess finished with exit code 0

二、比较两个日期的大小

1. dateObject1.__lt__(dateObject2)

  • 比较前一个日期是否小于后一个日期,返回布尔值(True/False)。
import datetimedate1 = datetime.date(2022, 11, 23)
date2 = datetime.date(2022, 11, 30)print(date1.__lt__(date2))   # True

2. dateObject1.__gt__(dateObject2)

  • 比较前一个日期是否大于后一个日期,返回布尔值(True/False)。
import datetimedate1 = datetime.date(2022, 11, 23)
date2 = datetime.date(2022, 11, 30)print(date1.__gt__(date2))   # False

三、日期的加减操作

  • 首先需要用datetime.datetime.strptime()方法将字符串格式的时间转化成datetime标准格式。
  • 其中"%Y/%m/%d %H:%M:%S"为time字符串的时间格式:Y为年,m为月,d为天,H为小时,M为分钟,S为秒。
import datetime# 以下两种标准格式都可以
time1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time3 = "2019/1/2 11:00:00"
time4 = datetime.datetime.strptime(time3, "%Y/%m/%d %H:%M:%S")print(type(time2))   # <class 'datetime.datetime'>
print(type(time4))    # <class 'datetime.datetime'>

1. 加减天数

import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 += datetime.timedelta(days=1)    # 增加天数print(time2)   # 2019-01-03 11:00:00
import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 -= datetime.timedelta(days=5)    # 减少天数print(time2)   # 2018-12-28 11:00:00

2. 加减小时数

import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 += datetime.timedelta(hours=5)    # 增加小时print(time2)   # 2019-01-02 16:00:00
import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 -= datetime.timedelta(hours=5)    # 减少小时print(time2)   # 2019-01-02 06:00:00

3. 加减分钟数

import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 += datetime.timedelta(minutes=20)    # 增加分钟print(time2)   # 2019-01-02 11:20:00
import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 -= datetime.timedelta(minutes=20)    # 减少分钟print(time2)   # 2019-01-02 10:40:00

4. 加减秒数

import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 += datetime.timedelta(seconds=20)    # 增加秒数print(time2)   # 2019-01-02 11:00:20
import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 -= datetime.timedelta(seconds=20)    # 减少秒数print(time2)   # 2019-01-02 10:59:40

5. 加减年份

  • 需要把年份转换成day。
import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 += datetime.timedelta(days=368)    # 增加年份print(time2)   # 2020-01-05 11:00:00
import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 -= datetime.timedelta(days=368)    # 减少年份print(time2)   # 2017-12-30 11:00:00

6. 可同时修改日/时/分/秒

import datetimetime1 = "2019-1-2 11:00:00"
time2 = datetime.datetime.strptime(time1, "%Y-%m-%d %H:%M:%S")time2 -= datetime.timedelta(days=1, hours=1, minutes=20, seconds=30)    # 减少年份print(time2)   # 2019-01-01 09:39:30

参考文章:
https://blog.csdn.net/cainiao_python/article/details/123516004
https://jingyan.baidu.com/article/e5c39bf58f809378d6603337.html
https://zhuanlan.zhihu.com/p/461500036

操作Python日期的常见用法相关推荐

  1. Python 日期和时间用法超强总结

    时间无疑是生活各个方面中最关键的因素之一,因此,记录和跟踪时间变得非常重要.在 Python 中,可以通过其内置库跟踪日期和时间.今天我们来介绍关于 Python 中的日期和时间,一起来了解如何使用t ...

  2. python propresql mysql_python数据库操作mysql:pymysql、sqlalchemy常见用法详解

    本文实例讲述了python数据库操作mysql:pymysql.sqlalchemy常见用法.分享给大家供大家参考,具体如下: 相关内容: 使用pymysql直接操作mysql 创建表 查看表 修改表 ...

  3. python requests常见用法总结

    一.前言 requests是Python中一个用来发出HTTP请求的库,它将复杂的网络请求封装为一个简单的API以供用户调用,对于一般比较简单的爬虫程序而言,requests库足矣,今天博主分享一下r ...

  4. Python中的标准库函数(内置函数)print()输出(打印出)字符串的常见用法

    这篇博文用于记录下Python中的标准库函数print()的常见用法,随着时间的推移,可能会有更新. print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一 ...

  5. python内置函数lambda函数常见用法

    一.关于lambda函数: 是Python编程语言中使用较多的一个内置函数.他可以在不指定函数名称的情况下定义一些简单逻辑的函数.可以定义一个函数给变量. 二.使用方法: 语法: 在Python中,l ...

  6. python文件的用法_Python文件读写常见用法总结

    1. 读取文件 # !/usr/bin/env python # -*- coding:utf-8 -*- """ 文件读取三步骤: 1.打开文件 f=open(file ...

  7. python六:常见数据类型以及常见用法

    bool 布尔值 # 在bool中 0,()(空元祖),[](空列表),{}(空字典),None,""(空字符串) 都是False int 整形 float 浮点型 str 字符串 ...

  8. [python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)

    转载地址:[python爬虫] Selenium常见元素定位方法和操作的学习介绍 一. 定位元素方法 官网地址:http://selenium-python.readthedocs.org/locat ...

  9. Python中else关键字的常见用法

    Python中的else常见用法有三:选择结构.循环结构和异常处理结构. (1)选择结构 这应该是最常见的用法,与关键字if和elif组合来使用,用来说明条件不符合时应执行的代码块. (2)循环结构 ...

最新文章

  1. 关于Hibernate中的Configuration
  2. 微信端 a 链接无法跳转
  3. HTML--HTML入门篇(我想10分钟入门HTML,可以,交给我吧)
  4. 熊猫分发_流利的熊猫
  5. 1433 mssql 安全_mssqlsql2008安全配置又一给力教程
  6. 保护眼睛的电脑设置_专为长期玩电脑的你准备的3种护眼模式,你学到了吗?...
  7. 学习环境搭建:UDK2017 下载以及编译
  8. VS2008 SP1安装失败
  9. 微信电脑版关掉截屏快捷键
  10. centos7 xmapp安装完报错:error while loading shared libraries: libc.so.6
  11. 基本农田卫星地图查询_天地图山东,购房者勘测利器,国产骄傲
  12. 滴滴WebApp实践经验分享
  13. 微信小程序多次跳转后不能点_微信突然更新,但我劝你这次别升级
  14. 编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
  15. hub_probe()
  16. 2122 还原原数组(枚举,双指针)
  17. 要么做,要么滚!没有试试看这一说
  18. 夸克链创始人周期:把区块链的好处带给千家万户
  19. 使用 T-SQL 语句完成数据综合检索
  20. Reac生命周期钩子之getSnapshotBeforeUpdate

热门文章

  1. 使用jmeter进行App服务器压力测试
  2. [spark] 内存管理 MemoryManager 解析
  3. 达利欧《成功的原则》中文字幕
  4. MYSQL select投影语句
  5. 2017年普及组初赛题解
  6. Visio虚线变实线的解决方法
  7. mp4在线转换gif
  8. 大家好!我是屁孩君儿子,今天给大家带来一个2020:【例4.5】第几项的题目(第一次发代码,很紧张!)代码如下
  9. 探索小程序开发:2023年的全面指南
  10. 加入彭友会,啥都能学会!