Python的datetime模块简介

目录

前言

一、Datetime模块的常用类

二、Date 类的用法

1. datetime.date(year, month, day)

2.today()

3. fromtimestamp(timestamp)

4.ctime()

5.weekday()

6.replace()

7.格式化输出

二、Time 类的用法

1.datetime.time(hour,minute,second,microsecond,tzinfo)

2.time对象的常用方法

三、Datetime 类的用法

1. datetime.datetime(year,month,day,hour,minute,second,microsecond)

2.datetime 类对象的创建方法

3.datetime 类对象的常用方法

总结


前言

datetime 模块可以很方便地处理日期或时间,是常用的Python模块之一,下面本文详细介绍下该模块的常见用法。

一、Datetime模块的常用类

Datetime的常用类包含日期,时间以及日期时间三种,列表如下。其中Date类只设计到日期,包含年月日,不包括一天内的时间,Time 类会精确到时间级别,datetime是前2种的合体,既能处理日期,也能处理时间。

类名描述
date日期对象,表示年、月、日
time时间对象,表示小时,分,秒,毫秒
datetime日期时间对象,既有日期又有时间

下面将详细介绍这三种对象的属性和用法。

二、Date 类的用法

1. datetime.date(year, month, day)

        可以用datetime.date(year,month,day)来直接创立一个Date类的对象,该对象具有year,month和day三个常用的属性。代码举例如下:

>>> import datetime
>>> a=datetime.date(2023,5,23) #创建1个date对象
>>> a.year #date对象的year属性
2023
>>> a.month  #date对象的month属性
5
>>> a.day  #date对象的day属性
23

2.today()

我们也可以用date类的today()方法来创建当日日期的date对象,代码举例如下:

>>> datetime.date.today() #返回当前日期的date类
datetime.date(2023, 5, 21)

3. fromtimestamp(timestamp)

运用fromtimestamp我们可以从1个时间戳来创立1个date对象,代码举例如下:

>>> import time
>>> import datetime
>>> a=time.time() #用time.time()产生当前的时间戳,赋值给a
>>> a
1684669448.6190135
>>> datetime.date.fromtimestamp(a) #用a产生date对象
datetime.date(2023, 5, 21)

4.ctime()

date类对象的ctime()方法可以返回该对象ctime格式的日期,时间则是0,代码举例如下:

>>> a=datetime.date.today() #生产当前日期的date对象
>>> a
datetime.date(2023, 5, 21)
>>> a.ctime() #返回a的ctime格式,注意时间是0
'Sun May 21 00:00:00 2023'

5.weekday()

date类对象的weekday()方法可以返回该对象的星期的数字,Monday == 0 ... Sunday == 6,代码举例如下:

>>> a=datetime.date.today() #通过today()方法创建1个当日的date类
>>> a
datetime.date(2023, 5, 21)
>>> a.weekday() #weekday方法返回星期,6代表周日
6
>>> b=datetime.date(2023,5,20) #直接创建1个20230520的date类对象
>>> b
datetime.date(2023, 5, 20)
>>> b.weekday()  #weekday方法返回星期,5代表周六
5

6.replace()

        replace()方法可以替换掉date对象的year,month,day种的任何1个或多个,用法如下:

obj.replace(year=*,month=*,day=*)

代码举例如下:

>>> a=datetime.date.today()
>>> a  
datetime.date(2023, 5, 21)
>>> a.replace(month=6)  #替换month属性
datetime.date(2023, 6, 21)
>>> a.replace(year=2022)  #替换year属性
datetime.date(2022, 5, 21)
>>> a.replace(day=20)    #替换day属性
datetime.date(2023, 5, 20) 
>>> a.replace(year=2022,month=6,day=20) #替换全部属性
datetime.date(2022, 6, 20)
>>> a.replace(2022,6,20) #不带形参替换全部属性
datetime.date(2022, 6, 20)
>>> a.replace(2022)  #只有1个参数时代表year
datetime.date(2022, 6, 20)

7.格式化输出

        date对象的格式化输出方法有下面几种

方法        描述
obj.__format__('%Y%m%D')根据参数种的字符串格式来输出日期
obj.strftime('%Y%m%D')和上面功能一致
obj.__str__()简单iso format的日期:YYYY-MM-DD
obj.isoformat(...)简单iso format的日期:YYYY-MM-DD

代码举例如下:

>>> a=datetime.date.today()
>>> a.__format__('%Y-%m-%d') 
'2023-05-21'
>>> a.strftime('%Y-%m-%d') 
'2023-05-21'
>>> a.__str__()
'2023-05-21'
>>> a.isoformat()
'2023-05-21'

二、Time 类的用法

1.datetime.time(hour,minute,second,microsecond,tzinfo)

我们可以用datetime.time()来创建1个time 类的对象,该对象具有hour,minute,second,microsecond和tzinfo等属性,代码举例如下:

>>> a=datetime.time(12,50,30,50)   
>>> a.hour 
12
>>> a.minute
50
>>> a.second
30
>>> a.microsecond #返回us的属性(注意不是毫秒),us最大值为999999
50
>>> a.tzinfo #该属性为None

2.time对象的常用方法

time对象的常用方法如下表,大部分方法和date对象类似

方法        描述
obj.__format__('%Y%m%D')根据参数种的字符串格式来输出时间
obj.strftime('%Y%m%D')和上面功能一致
obj.__str__()iso format的时间:HH:MM:SS
obj.isoformat(...)iso format的时间:HH:MM:SS
obj.replace(...)和date类对象功能一样,可以替换一些属性

代码举例如下:

>>> a=datetime.time(12,9,30,10000)  
>>> a
datetime.time(12, 9, 30, 10000)
>>> a.__format__('%H:%M:%S')  #格数化输出
'12:09:30'
>>> a.strftime('%H:%M:%S')   #格数化输出       
'12:09:30'
>>> a.__str__()          #isoformat格式输出    
'12:09:30.010000'
>>> a.isoformat()         #isoformat格式输出              
'12:09:30.010000'
>>> a.replace(hour=11,second=29) #替换hour和second属性并返回一个time对象
datetime.time(11, 9, 29, 10000)


三、Datetime 类的用法

1. datetime.datetime(year,month,day,hour,minute,second,microsecond)

我们可以用datetime.datetime()来直接产生datetime类的对象,该对象有year,month,day,hour,minute,second,microsecond等属性,基本时结合了date对象和time对象的所有属性。

代码举例如下:

>>> a=datetime.datetime(2023,5,21,10,10,20,30000) #创建1个datetime对象
>>> a.year  #返回year属性
2023
>>> a.month
5
>>> a.day
21
>>> a.hour
10
>>> a.minute
10
>>> a.second
20
>>> a.microsecond 
30000

2.datetime 类对象的创建方法

我们还可以用其他的方法来创建datetime类,以下是常见方法:

方法        描述
datetime.combine(date,time)将date对象和time对象合并返回datetime对象
datetime.now()返回当前时间的datetime 类的对象
datetime.fromtimestamp(...)根据时间戳参数来返回对应的datetime 类对象
datetime.fromisoformat(...)根据isotime来返回对应的datetime类对象

  代码举例如下:

>>> a=datetime.date.today() #创建date对象
>>> a          
datetime.date(2023, 5, 21) #创建time对象
>>> b=datetime.time(12,30,31) 
>>> b
datetime.time(12, 30, 31)
>>> datetime.datetime.combine(a,b) #conbine date和time对象,返回datetime对象
datetime.datetime(2023, 5, 21, 12, 30, 31)
>>> datetime.datetime.now() #返回当前时间的datetime对象
datetime.datetime(2023, 5, 21, 20, 44, 34, 346970)
>>> datetime.datetime.fromtimestamp(time.time()) #从时间戳返回datetime对象
datetime.datetime(2023, 5, 21, 20, 45, 12, 698264)
>>> datetime.datetime.fromisoformat('2022-05-21 20:45:12') #从iso format返回datetime对象
datetime.datetime(2022, 5, 21, 20, 45, 12)

3.datetime 类对象的常用方法

datetime对象有很多方法,下表是总结的常见方法:

方法        描述
obj.date()返回date对象,属性和datetime一样
obj.time()返回time对象,属性和datetime一样
obj.replace(...)替换对象的属性,用法和之前的date和time类似
obj.isoformat()返回iso format的时间:YYYY-MM-DD HH:MM:SS
obj.strftime(...)格式化输出时间

上面常用方法的代码举例如下:

>>> a=datetime.datetime.now() #创建datetime 类对象
>>> a 
datetime.datetime(2023, 5, 21, 20, 55, 45, 988365)
>>> a.date() #返回date 对象
datetime.date(2023, 5, 21) 
>>> a.time() #返回time对象
datetime.time(20, 55, 45, 988365)
>>> a.replace(year=2022,minute=30)  #替换year和minute
datetime.datetime(2022, 5, 21, 20, 30, 45, 988365)
>>> a.isoformat() #iso format
'2023-05-21T20:55:45.988365'
>>> a.__str__() #iso format
'2023-05-21 20:55:45.988365'
>>> a.strftime('%Y%m%d') #格式化输出日期
'20230521'
>>> a.strftime('%Y%m%d %H:%M:%S') #格式化输出日期和时间
'20230521 20:55:45'
>>>


总结

以上就是所有内容,希望对大家有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值