Python日期时间datetime库与dateutil库典型示例与详解(1)--datetime库简介&datetime库date类常用例子

最近开发遇到需要处理各种日期与时间,现有的各种资料都比较零碎,不成体系,索性结合官方手册和典型示例整理一个比较全的资料。

Python与日期时间相关的两个库datetime、dateutil功能很分丰富,我们按具体用例场景梳理下:

一、datetime库简介

(1)datetime库下有6个类,用的最多的是datetime、time、date、timedelta四个类,另外的tzinfo类、timezone类(python3.2版本后才有timezone类)是与时区相关,应用中涉及到不同时区时间处理的才需要使用。

(2)datetime库与datetime库的datetime类在写代码时容易产生混淆,其实这跟我们import时的命名空间有关,为了方便我们通常是这样来引用:

from datetime import datetime,date,time,timedelta

或者

from datetime import *

那我们输入datetime、date时其实已经是指相关类了

如果是

import datetime

datetime.datetime是指datetime库的datetime类,datetime.date是指datetime库的date

这样import的好处是命名空间不会乱。

本文例子用

from datetime import *

(3) datetime库与time库是两个python库, datetime库的time类与python的time库有时候也容易混淆,注意引用时的命名空间,例如我们可以:

from time import time as t_time
from datetime import time as dt_time

datetime库与time库确实存在一些数据类型和方法功能的重叠,但通常涉及日期时间的应用操作选择datetime库就够了,

程序中要用到计时的场景选择time库,time库的time.sleep()方法广泛用于各种计时场景;

二、datetime库date常用例子

1、获取当前日期

date1 = date.today()

2、生成一个指定日期的date对象

(1) 生成指定日期date对象的3个参数分别为年、月、日,必须全部填写,否则抛出异常:

date1 = date(2023,11,16)
(2)生成时要注意各时间单位有效性,否则要抛出异常,大小月、润年月也要注意
例如:date(2023,2,29)也会抛出异常

3、获取date对象的各时间单位的数值(返回值为int型)

year = date1.year
month = date1.month
day = date1.day

4、修改date对象的各时间单位的数值replace( )

date1 = date(2023,11,16)
date1.replace(year=2022,month =1,day = 22)
# year,month,day可以单独和组合修改

5、求date对象m天是周几 weekday( ) /isoweekday( )

返回值为int型
(1)weekday()
weekday = date1.weekday()
返回值为0-6,周一Monday返回0周天Sunday返回6,
(2)isoweekday ()
weekday = date1.isoweekday ()
返回值为1-7,周一Monday返回1周天Sunday返回7

6、求date对象是一年中第几周和周几 isocalendar( )

返回值为int类型组成的tuple(元组)

calendar = date1.isocalendar()
#返回元组(2023, 46, 4),既表示2023年第46周星期4
year = calendar[0]
week = calendar[1]
days = calendar[2]

7、用某年第几周和周几生成date对象fromisocalendar ( )

Mydate= date.fromisocalendar (2023, 46, 4) 
就是isocalendar( )反着用

8、date对象转换为字符串

共有三种方法,假设date对象

Mydate= date(2023, 11, 16)

 (1)str类型转换

Mydate_string1 = str(Mydate) #转化为’2023-11-16

 (2) date类的isoformat()

Mydate_string2 = Mydate.isoformat()

#转化为ISO标准的日期字符串’2023-11-16’,跟str(Mydate)一样

(3) date类的strftime()

Mydate_string3 = Mydate.strftime('%Y/%m/%d')
# strftime自定义格式转换,例子转换结果为’2023/11/16

9、用字符串生成一个指定的date对象

字符串转为date对象有几种方法,需要先掌握datetime类,才能完全理解所有方法;
详见系列文章:《Python日期时间datetime库与dateutil库典型示例与详解(2)--datetime库datetime类常用例子》
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值