目录
1. datetime.date(year, month, day)
1.datetime.time(hour,minute,second,microsecond,tzinfo)
1. datetime.datetime(year,month,day,hour,minute,second,microsecond)
前言
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'
>>>
总结
以上就是所有内容,希望对大家有所帮助!