栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python-datetime模块详解(未完,待续)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-datetime模块详解(未完,待续)

文章目录

一、datetime模块介绍

1.datetime包含的类2.datetime包含的常量 二、date类

1.对象构成2、date对象中包含的方法与属性

1、用于日期比较大小的方法2、获得二个日期相差多少天3、ISO标准化日期4、其他方法与属性 3、日期的字符串输出 三、time类

(一)、time对象构成(二)、time类中的方法和属性(三)、时间的字符串输出 四、datetime类

(一)、datetime对象构成(二)、专属于datetime的方法和属性

一、datetime模块介绍 1.datetime包含的类


2.datetime包含的常量

二、date类 1.对象构成


获取当天的年月日

>>> from datetime import date
>>> today = date.today()
>>> today.year
2022
>>> today.month
3
>>> today.day
10
2、date对象中包含的方法与属性 1、用于日期比较大小的方法

>>> yesterday = date(today.year,today.month,today.day-1)
>>> yesterday
datetime.date(2022, 3, 9)
>>> yesterday.day
9
>>> yesterday.month
3
>>> yesterday.year
2022


>>> yesterday == today
False
>>> yesterday < today
True
>>> yesterday > today
False
2、获得二个日期相差多少天

计算结果的返回值类型为datetime.timedelta,只能返回多少天

>>> yesterday - today
datetime.timedelta(days=-1)

>>> (yesterday - today).days
-1
3、ISO标准化日期

isocalendar().week 返回的是距离去年年底过了多少周
isocalendar().weekday 返回的是周几 (1-7)

>>> today.isocalendar()
datetime.IsoCalendarDate(year=2022, week=10, weekday=4)

属性可以通过索引访问,也可以通过句点符访问year、week、weekday

>>> today
datetime.date(2022, 3, 10)
>>> today.isocalendar()
datetime.IsoCalendarDate(year=2022, week=10, weekday=4)
>>> today.isocalendar().year
2022
>>> today.isocalendar().week
10
>>> today.isocalendar().weekday
4
>>> today.isocalendar()[0]
2022
>>> today.isocalendar()[1]
10
>>> today.isocalendar()[2]
4
isoformat(…)
返回符合ISO 8601标准 (
YYYY-MM-DD
) 的日期字符串;
>>> today.isoformat()
'2022-03-10'

isoweekday(…): 返回符合ISO标准的指定日期所在的星期数(周一为1…周日为7)

>>> today.isoweekday()
4

与isoweekday(…)相似的还有一个weekday(…)方法,只不过是weekday(…)方法返回的周一为 0, 周日为 6

>>> today.weekday()
3
4、其他方法与属性

1). timetuple(…):该方法为了兼容time.localtime(…)返回一个类型为time.struct_time的数组,但有关时间的部分元素值为0:
tm_yday:表示的是从新的一年的元旦(零点)一共走过的天数

>>> from datetime import date
>>> a = date.today()
>>> a
datetime.date(2022, 3, 10)
>>> a.timetuple()
time.struct_time(tm_year=2022, tm_mon=3, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=69, tm_isdst=-1)
>>> 31 + 28 + 10
69
>>> a.timetuple().tm_year
2022
>>> 

2).toordinal(…): 返回公元公历开始到现在的天数。公元1年1月1日为1

>>> a.toordinal()
738224

3). replace(…):返回一个替换指定日期字段的新date对象。参数3个可选参数,分别为year,month,day。注意替换是产生新对象,不影响原date对象。

>>> a.replace(year=2010)
datetime.date(2010, 3, 10)
>>> a
datetime.date(2022, 3, 10)

4).resolution:date对象表示日期的最小单位。这里是天。

>>> a.resolution
datetime.timedelta(days=1)
>>> a.resolution.days
1

5).fromordinal(…):将Gregorian日历时间转换为date对象;Gregorian Calendar :一种日历表示方法,类似于我国的农历,西方国家使用比较多。(就是把时间天数转换为date对象)

>>> date.fromordinal(a.toordinal())
datetime.date(2022, 3, 10)

6).fromtimestamp(…):根据给定的时间戮,返回一个date对象

>>> import time
>>> time.time()
1646920802.0949812
>>> date.fromtimestamp(time.time())
datetime.date(2022, 3, 10)

7).today(…):返回当前日期

>>> date.today()
datetime.date(2022, 3, 10)

8).max: date类能表示的最大的年、月、日的数值;min: date类能表示的最小的年、月、日的数值

>>> date.max
datetime.date(9999, 12, 31)
>>> date.min
datetime.date(1, 1, 1)
3、日期的字符串输出

1、如果你想将日期对象转化为字符串对象的话,可以用到__format__(…)方法以指定格式进行日期输出:

>>> a.__format__('%Y-%m-%d')
'2022-03-10'
>>> a.__format__('%Y/%m/%d')
'2022/03/10'
>>> a.__format__('%D')
'03/10/22'

等价于strftime

>>> a.strftime('%Y-%m-%d')
'2022-03-10'


2、如果只是相简单的获得日期的字符串,使用str(…)

>>> str(a)
'2022-03-10'

3、如果想要获得ctime样式的格式请使用ctime(…):

>>> a.ctime()
'Thu Mar 10 00:00:00 2022'
三、time类 (一)、time对象构成

>>> from datetime import time
>>> a = time(1,2,3,4)
>>> a.hour
1
>>> a.minute
2
>>> a.second
3
>>> a.microsecond
4
>>> a.tzinfo
(二)、time类中的方法和属性

1、比较时间大小

>>> a
datetime.time(1, 2, 3, 4)
>>> b = time(2,4,5,7)
>>> a > b
False
>>> a == b
False
>>> a <= b
True

2、判断时间对象是否非零,返回值为True/False:

>>> a == 0
False
>>> a != 0
True

3、其他属性
1)、max:最大的时间表示数值;min:最小的时间表示数值

>>> a.max
datetime.time(23, 59, 59, 999999)
>>> a.min
datetime.time(0, 0)

2)、resolution:时间间隔单位为分钟

>>> time.resolution
datetime.timedelta(microseconds=1)
>>> a.resolution
datetime.timedelta(microseconds=1)
>>> time.resolution.microseconds
1
(三)、时间的字符串输出

1、如果你想将时间对象转化为字符串对象的话,可以用到__format__(…)方法以指定格式进行时间输出

>>> a
datetime.time(1, 2, 3, 4)
>>> a.strftime('%H:%M:%S')
'01:02:03'
>>> a.__format__('%H:%M:%S')
'01:02:03'

2、ISO标准输出
如果要使输出的时间字符符合ISO标准,请使用isoformat(…):

>>> a.isoformat()
'01:02:03.000004'

3、如果只是相简单的获得时间的字符串,则使用str(…):

>>> str(a)
'01:02:03.000004'
四、datetime类 (一)、datetime对象构成
>>> a = datetime.today()
>>> a
datetime.datetime(2022, 3, 10, 22, 51, 59, 983579)
(二)、专属于datetime的方法和属性

1、 date(…):返回datetime对象的日期部分;time(…):返回datetime对象的时间部分:

>>> a = datetime.today()
>>> a.date()
datetime.date(2022, 3, 10)
>>> a.time()
datetime.time(22, 55, 22, 156704)

2、utctimetuple(…):返回UTC时间元组:

>>> a.utctimetuple()
time.struct_time(tm_year=2022, tm_mon=3, tm_mday=10, tm_hour=22, tm_min=55, tm_sec=22, tm_wday=3, tm_yday=69, tm_isdst=0)

3、combine(…):将一个date对象和一个time对象合并生成一个datetime对象:

>>> a
datetime.datetime(2022, 3, 10, 22, 55, 22, 156704)
>>> datetime.combine(a.date(),a.time())
datetime.datetime(2022, 3, 10, 22, 55, 22, 156704)

4、now(…):返回当前日期时间的datetime对象:

>>> datetime.now()
datetime.datetime(2022, 3, 10, 23, 0, 16, 227303)

5、utcnow(…):返回当前日期时间的UTC datetime对象:

>>> from datetime import datetime
>>> datetime.utcnow()
datetime.datetime(2022, 3, 11, 0, 19, 10, 558382)

6、strptime(…):根据string, format 2个参数,返回一个对应的datetime对象:注意这里的字符串必须用**‘-’分隔开,比如说’2017-3-22 15:25’**

>>> datetime.strptime('2017-3-22 15:25', '%Y-%m-%d %H:%M')
datetime.datetime(2017, 3, 22, 15, 25)
>>> datetime.strptime('2017-3-22','%Y-%m-%d')
datetime.datetime(2017, 3, 22, 0, 0)

7、utcfromtimestamp(…):UTC时间戳的datetime对象,时间戳值为time.time():

>>> import time
>>> datetime.utcfromtimestamp(time.time())
datetime.datetime(2022, 3, 11, 0, 25, 58, 512137)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756946.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号