python的datetime库使用详解

        本章介绍python最具代表性的的时间日期库——datetime。同样道理,大家可以更改电脑日期 时间去试验更多的函数,亲自实践会有不错的效果。

目录


1.  datetime.date

1.1  datetime.date(year,month,day)

        获取某天日期,返回日期格式。

import datetime
a = datetime.date(2023,2,19)
print(a)
print(type(a))

        今天为2023年4月20日。该函数下还能继续取 “值” ,主要有下面10个:

1.1.1  datetime.date格式重要属性

表1 datetime.date属性
a.year提取年。 输出2023,类型为int。
a.month提取月。输出2,类型为int。
a.day提取日。输出19,类型为int。
a.isoformat()返回该日期的字符串。输出2023-02-19。
a.replace(a.year,7,a.day)替换日期,把月替换成7月。
a.isoweekday()返回iso星期几。Monday=1。
a.weekday()返回假星期几。Monday=0。
a.strftime(‘%Y/%m/%d’)返回该日期的字符串。输出2023-02-19,类型为str。假如不需要日,把/%d去掉即可。中间分隔支持任意英文字符,如 / ,但不支持中文。
a.timetuple()结构化日期,返回日期时间元组。包括 年月日时分秒 假星期 年日数 夏令时。
a.toordinal()返回公历序数。即从公历开始算,是第几日。

        datetime.date格式都可以使用表1这些函数去提取属性。

1.2  datetime.date.fromtimestamp(timestamp)

        从时间戳获取日期。

a = datetime.date.fromtimestamp(1681925739)
print(a)
print(type(a))

        时间戳可以用time时间库 time.time()获得。时间戳的概念我在上一篇讲过,也不是一两句话可以讲得明白的,但还是需要理解它。建议朋友们翻看上一篇去了解一下时间戳,它一个非常有意思和有危机感的东西。

1.3  datetime.date.today()

        获取今天的日期。

a = datetime.date.today()
print(a)
print(type(a))

2.  datetime.time

2.1  datetime.time(hour,minute,second,millisecond)

        获取时间。返回时间格式。

a = datetime.time(12,3,56,888888)
print(a)
print(type(a))

        类似,datetime.time格式也可以往下 “取值” ,主要有以下7个:

2.1.1  datetime.time格式重要属性

表2 datetime.time属性
a.hour提取时。输出12,类型int。
a.minute提取分。输出3,类型int。
a.second提取秒。输出56,类型int。
a.microsecond提取毫秒。输出888888,类型int。
a.isoformat()返回该时间的字符串。输出12:03:56.888888。
a.replace(second=44)把秒替换成44,返回格式依旧datetime.time
a.strftime(‘%H:%M:%S’)格式化时间。输出指定格式字符串。

        datetime.time格式都可以使用表2这些函数去提取属性。

3.  datetime.datetime

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

        获取某天日期时间。至少传入year,month,day三个参数。

a = datetime.datetime(2022,5,14,12,6,37,888888)
print(a)
print(type(a))

        类似,datetime.time格式也可以往下 “取值” ,主要有以下16个:

3.1.1  datetime.datetime格式重要属性

表3 datetime.datetime属性
a.date()提取日期。输出2022-05-14,类型datetime.date
a.time()提取时间。输出12:06:37.888888,类型datetime.time
a.year提取年。 输出2022,类型为int。
a.month提取月。输出5,类型为int。
a.day提取日。输出14,类型为int。
a.hour提取时。输出12,类型int。
a.minute提取分。输出6,类型int。
a.second提取秒。输出37,类型int。
a.microsecond提取毫秒。输出888888,类型int。
a.timestamp()提取时间戳。
a.timetuple()返回日期时间元组。
a.isoweekday()返回iso星期几。Monday=1。
a.weekday()返回假星期几。Monday=0。
a.replace(month=2)把月替换成2,返回格式依旧datetime.datetime
a.strftime(‘%Y/%m/%d %H:%M:%S:%f’)格式化日期时间。输出指定格式字符串。中间分隔支持任意英文字符,如 / : ,但不支持中文。
a.toordinal()返回公历序数。即从公历开始算,是第几日。

        datetime.datetime格式都可以使用表3这些函数提取属性。

3.2  datetime.datetime.now()

        获得现在的日期时间。

a = datetime.datetime.now()
print(a)
print(type(a))

3.3  datetime.datetime.today()

        获得现在的日期时间。和3.2的datetime.datetime.now()一模一样。

a = datetime.datetime.today()
print(a)
print(type(a))

3.4  datetime.datetime.fromtimestamp(timestamp)

        从时间戳获得日期时间。

a = datetime.datetime.fromtimestamp(1681969157)
print(a)
print(type(a))

3.5  datetime.datetime.utcnow()

        获得现在的格林尼治时间。

a = datetime.datetime.utcnow()
print(a)
print(type(a))

3.6  datetime.datetime.utcfromtimestamp(timestamp)

        从时间戳获得格林尼治时间。

a = datetime.datetime.utcfromtimestamp(time.time())
print(a)
print(type(a))

        格林尼治时间为中国时间-8小时。关于时间戳和时区的描述,在 “time” 篇有详细的介绍。

3.7  datetime.datetime.combine(date,time)

        通过连接日期和时间生成日期时间。

d = datetime.date.today()
t = datetime.time(12,23,45)

a = datetime.datetime.combine(d,t)
print(a)

3.8  datetime.datetime.timestamp(dt)

        获取时间戳。和 dt.timestamp()一样。

dt = datetime.datetime.now()
a = datetime.datetime.timestamp(dt)
print(a)

3.9  datetime.datetime.strptime(string,format)

        把字符串类型转换成日期时间。

dt = '2022年10月13日01时16分31秒'
a = datetime.datetime.strptime(dt,'%Y年%m月%d日%H时%M分%S秒')
print(a)
print(type(a))

3.10  datetime.timedelta(weeks,days,hours,minutes,seconds,milliseconds,microseconds)

        时间增量,可作时间的加减。参数已帮大家按大小顺序排好啦!1秒=1000毫秒,1毫秒=1000微秒。

delta = datetime.timedelta(days=5,minutes=23,seconds=39)
print(delta)
print(type(delta))

        格式为datetime.timedelta。马上体验一下它的功能:

a = datetime.datetime(2023,4,18,15,16,20)
print(a)

delta = datetime.timedelta(days=5,minutes=23,seconds=37)
b = a + delta
print(b)

        对时间a进行增量(加法)后,得到了时间b,也可进行减法,常用于对某日期时间进行加减。不过目前的缺点是只有 <周数> <天数> <小时> <分> <秒> <毫秒> 和 <微秒>。

3.11  时间差(时间增量的产生)

        可以直接对两个时间进行减法,从而产生时间增量 timedelta。时间增量可以为负,也可以为正。如算我国时间与格林尼治的时间差:

a = datetime.datetime.now()
b = datetime.datetime.utcnow()
print(a - b)
print(b - a)
print(type(a - b))

        可知我国时间比英国格林尼治早8小时。当天我们在0点时,格林尼治在前一天的16:00。

结尾

        个人觉得datetime库是python最好用的日期时间处理库,提醒一下,那三个表格内容非常重要,要好好掌握。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年11月7日
下一篇 2023年11月7日

相关推荐