距离2024年春节还有多少天?简单聊聊datetime(38)

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

欢迎和猫妹一起,趣味学Python。

今日主题

你见过倒计时吗?

比如距离2024年春节还有多少天?

比如距离高考还有多少天?

今天咱们学习下Python的datetime库,用它可以很简单地计算倒计时哦!

datetime是Python自带的,无需安装,datetime包括处理日期的date对象、处理时间的time对象、计算日期差的timedelta对象等。

datatime模块是在time模块的基础之上做了封装,提供了更多更好用的类供我们使用,常用的有date、datetime、time、timedelta、tzinfo。

但是为了更灵活地处理时间,最好是将time模块和datetime模块中的精髓学习到。

① date类:主要用于处理年、月、日;

② datetime类:date类和time类的综合使用,可以处理年、月、日、时、分、秒;

③ time类:主要用于处理时、分、秒;

④ timedelta类:主要用于做时间加减的;

⑤ tzinfo类:时区类;

注意:tzinfo用得不多,如有需要,可以自行学习。

datetime之date

表示日期的类

date(year, month, day)

构造方法

year取值范围datetime.MINYEAR =1~datetime.MAXYEAR=9999

month取值范围1~12

day取值范围1~本月最后一天

date.today()

返回一个表示当前本地日期的date对象。

date.fromtimestamp(timestamp)

根据给定的时间戮,返回一个date对象。

date.year、date.month、date.day

属性:年、月、日;

date.replace(year, month, day)

生成一个新的日期对象,用参数指定的年,月,日代替原有对象中的属性。(原有对象仍保持不变)

date.timetuple()

返回日期对应的time.struct_time对象即一个元组;

date.toordinal()

返回日期对应的Gregorian Calendar日期;

date.weekday()

返回weekday,如果是星期一,返回0;如果是星期2,返回1,以此类推;

data.isoweekday()

返回weekday,如果是星期一,返回1;如果是星期2,返回2,以此类推;

date.isocalendar()

返回格式如(year,month,day)的元组;

date.isoformat()

返回格式如'YYYY-MM-DD’的字符串;

date.strftime(fmt)

自定义格式化字符串

import datetime

print(type(datetime))

print(type(datetime.date))

d1=datetime.date.today()

print(d1)

print(datetime.date.weekday(d1))

print(type(d1))

d2=datetime.date(2024,1,1)

print(d2)

<class 'module'>

<class 'type'>

2023-05-06

5

<class 'datetime.date'>

2024-01-01

datetime之datetime

表示日期时间的类

datetime(year、month、day、hour、minute、second、microsecond、tzinfo)

构造方法

datetime.today()

返回一个表示当前本地时间的datetime对象;

datetime.now([tz])

返回一个表示当前本地时间的datetime对象,如果提供了参数tz,则获取tz参数所指时区的本地时间;

datetime.utcnow()

返回一个当前utc时间的datetime对象;

datetime.fromtimestamp(timestamp[, tz])

根据时间戮,创建一个datetime对象,参数tz指定时区信息;

datetime.utcfromtimestamp(timestamp)

根据时间戮,创建一个datetime对象;

datetime.combine(date, time)

根据date和time,创建一个datetime对象;

datetime.strptime(date_string, format)

将格式字符串转换为datetime对象;

datetime.date()

获取date对象;

datetime.time()

获取time对象;

datetime. replace ([ year[ , month[ , day[ , hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] ] ] ])

生成一个新的日期时间对象,用参数指定的:年、月、日、时、分、秒、毫秒、时区代替原有对象中的属性

datetime. timetuple ()

返回日期对应的datetime.struct_time对象即一个元组;

datetime. utctimetuple ()

datetime. toordinal ():返回日期对应的Gregorian Calendar日期时间

datetime. weekday ()

返回weekday,星期一返回0;星期2返回1,以此类推

datetime. isocalendar ()

返回格式如(year、month、day、hour、minute、second、microsecond、tzinfo)的元组

datetime. isoformat ([ sep] ):

datetime. ctime ():返回一个日期时间的C格式字符串,等效于time.ctime(time.mktime(dt.timetuple()));

datetime. strftime (format)

返回自定义格式化字符串。

import datetime

print(type(datetime))

print(type(datetime.datetime))

d1=datetime.datetime.today()

print(d1)

d2=datetime.datetime(2024,1,1,0,0,0,0)

print(d2)

<class 'module'>

<class 'type'>

2023-05-06 23:19:20.584069

2024-01-01 00:00:00

datetime之time

表示时间的类

time(hour、minute、second、microsecond、tzinfo)

构造方法

hour、minute、second、microsecond、tzinfo:时、分、秒、微秒、时区信息;

time.replace([ hour[ , minute[ , second[ , microsecond[ , tzinfo] ] ] ] ] )

创建一个新的时间对象,用参数指定的时、分、秒、微秒代替原有对象中的属性(原有对象仍保持不变);

time.isoformat()

返回型如"HH:MM:SS"格式的字符串表示;

time.strftime(fmt)

返回自定义格式化字符串。

datetime之timedelta

timedalte是datetime中的一个对象,该对象表示两个时间的差值。

timedelta对象是计算任意两个date datetime time对象之间时间差的对象。

创建其函数如下:

timedelta(day=0,seconds=0,microseconds=0,milliseconds=0,minutes=0,hours=0,weeks=0)

这里的参数为经过时间的日、秒、微妙、毫秒、分、时、周。

所有参数可以省略,默认值是0。

正数、负数、浮点数都可以参与运算。

timedelta.min:负数时间差,相当于timedelta(-999999999)。

timedelta.max:正数时间差,相当于timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)。

timedelta.resolution:两个时间的最小差值相当于timedelta(microseconds=1)。

计算日期加减指定天数后的日期

from datetime import datetime, timedelta

current_datetime = datetime.now()

# future dates

one_year_future_date = current_datetime + timedelta(days=365)

print('Current Date:', current_datetime)

print('One year from now Date:', one_year_future_date)

# past dates

three_days_before_date = current_datetime - timedelta(days=3)

print('Three days before Date:', three_days_before_date)

Current Date: 2023-05-06 23:07:16.669125

One year from now Date: 2024-05-05 23:07:16.669125

Three days before Date: 2023-05-03 23:07:16.669125

计算两个时间相差多少天

date类中还有两个重要方法:__sub__(*)和__sub__(*)方法,获得二个日期相差多少天;

sub(d1):计算的是d减去d1的天数

rsub(d1):计算的是d1减去d的天数

from datetime import *

d = date.today()

print("今天是",d)

d1 = date(2024,1,1)

print("新年元旦是",d1)

'''

x = d.__sub__(d1)

print(x)

print(x.days)

'''

y = d.__rsub__(d1)

print('相差',y.days,'天')

今天是 2023-05-06

新年元旦是 2024-01-01

相差 240 天

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,386评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,142评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,704评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,702评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,716评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,573评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,314评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,230评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,680评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,873评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,991评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,706评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,329评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,910评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,038评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,158评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,941评论 2 355

推荐阅读更多精彩内容