又肝了3天,整理了80个Python DateTime 例子,必须收藏

timestamp = datetime.fromtimestamp(i)

print(timestamp)

print(type(timestamp))

Output:

2018-12-25 14:57:53

16当前日期减去 N 天的天数


from datetime import datetime, timedelta

d = datetime.today() - timedelta(days=5)

print(d)

Output:

2021-05-10 12:59:14.867969

17比较两个日期


import datetime

a = datetime.datetime(2020, 12, 31, 23, 59, 59)

b = datetime.datetime(2020, 11, 30, 23, 59, 59)

print(a < b)

print(a > b)

Output:

False

True

18从 datetime 对象中提取年份


import datetime

year = datetime.date.today().year

print(year)

Output:

2021

19在 Python 中找到星期几


import pendulum

dt = pendulum.parse(‘2021-05-18’)

print(dt.day_of_week)

dt = pendulum.parse(‘2021-05-01’)

print(dt.day_of_week)

dt = pendulum.parse(‘2021-05-21’)

print(dt.day_of_week)

Output:

2

6

5

20从当前日期获取 7 天前的日期


from datetime import datetime, timedelta

now = datetime.now()

for x in range(7):

d = now - timedelta(days=x)

print(d.strftime(“%Y-%m-%d”))

Output:

2021-05-18

2021-05-17

2021-05-16

2021-05-15

2021-05-14

2021-05-13

2021-05-12

21将两个日期时间对象之间的差值转换为秒


import datetime

time1 = datetime.datetime.strptime(‘19 01 2021’, ‘%d %m %Y’)

time2 = datetime.datetime.strptime(‘25 01 2021’, ‘%d %m %Y’)

difference = time2 - time1

print(difference)

seconds = difference.total_seconds()

print(seconds)

Output:

6 days, 0:00:00

518400.0

22获得任何一个月的第三个星期五


import calendar

c = calendar.Calendar(firstweekday=calendar.SUNDAY)

year = 2021

month = 5

monthcal = c.monthdatescalendar(year, month)

try:

third_friday = [day for week in monthcal for day in week if

day.weekday() == calendar.FRIDAY and day.month == month][2]

print(third_friday)

except IndexError:

print(‘No date found’)

Output:

2021-05-21

23从 Python 中的周数获取日期


import datetime

from dateutil.relativedelta import relativedelta

week = 25

year = 2021

date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)

print(date)

Output:

2021-06-25

24获取特定日期的工作日


import datetime

print(datetime.date(2020, 5, 15).isocalendar()[2])

Output:

5

25创建一个 15 分钟前的 DateTime


import datetime

dt = datetime.datetime.now() - datetime.timedelta(minutes=15)

print(dt)

Output:

2021-05-15 22:25:55.897365

26从特定日期获取周的开始和结束日期


import pendulum

dt = pendulum.datetime(2012, 9, 5)

start = dt.start_of(‘week’)

print(start.to_datetime_string())

end = dt.end_of(‘week’)

print(end.to_datetime_string())

Output:

2012-09-03 00:00:00

2012-09-09 23:59:59

27两个日期之间的差异(以秒为单位)


from datetime import datetime

fmt = ‘%Y-%m-%d %H:%M:%S’

d1 = datetime.strptime(‘2020-01-01 17:31:22’, fmt)

d2 = datetime.strptime(‘2020-01-03 17:31:22’, fmt)

days_diff = d2 - d1

print(days_diff.days * 24 * 60 * 60)

Output:

172800

28以这种格式获取昨天的日期MMDDYY


from datetime import date, timedelta

yesterday = date.today() - timedelta(days=1)

print(yesterday.strftime(‘%m%d%y’))

Output:

051421

29从今天的日期获取上周三


from datetime import date

from datetime import timedelta

today = date.today()

offset = (today.weekday() - 2) % 7

wednesday = today - timedelta(days=offset)

print(wednesday)

Output:

2021-05-12

30所有可用时区的列表打印


import pytz

for i in pytz.all_timezones:

print(i)

Output:

Africa/Abidjan

Africa/Accra

Africa/Addis_Ababa

Africa/Algiers

Africa/Asmara

Africa/Asmera

Africa/Bamako

Africa/Bangui

Africa/Banjul

Africa/Bissau

US/Mountain

US/Pacific

US/Samoa

UTC

Universal

W-SU

WET

Zulu

31获取指定开始日期和结束日期之间的日期范围


import datetime

start = datetime.datetime.strptime(“21-06-2020”, “%d-%m-%Y”)

end = datetime.datetime.strptime(“05-07-2020”, “%d-%m-%Y”)

date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]

for date in date_generated:

print(date.strftime(“%d-%m-%Y”))

Output:

21-06-2020

22-06-2020

23-06-2020

24-06-2020

25-06-2020

26-06-2020

27-06-2020

28-06-2020

29-06-2020

30-06-2020

01-07-2020

02-07-2020

03-07-2020

04-07-2020

32毫秒转换为数据


import datetime

time_in_millis = 1596542285000

dt = datetime.datetime.fromtimestamp(time_in_millis / 1000.0, tz=datetime.timezone.utc)

print(dt)

Output:

2020-08-04 11:58:05+00:00

33查找给定日期之后的第一个星期日的日期


import datetime

def next_weekday(d, weekday):

days_ahead = weekday - d.weekday()

if days_ahead <= 0:

days_ahead += 7

return d + datetime.timedelta(days_ahead)

d = datetime.date(2021, 5, 16)

next_sunday = next_weekday(d, 6)

print(next_sunday)

Output:

2021-05-23

34将(Unix)时间戳秒转换为日期和时间字符串


from datetime import datetime

dateStr = datetime.fromtimestamp(1415419007).strftime(“%A, %B %d, %Y %I:%M:%S”)

print(type(dateStr))

print(dateStr)

Output:

Saturday, November 08, 2014 09:26:47

35以月为单位的两个日期之间的差异


from datetime import datetime

from dateutil import relativedelta

date1 = datetime.strptime(‘2014-01-12 12:00:00’, ‘%Y-%m-%d %H:%M:%S’)

date2 = datetime.strptime(‘2021-07-15 12:00:00’, ‘%Y-%m-%d %H:%M:%S’)

r = relativedelta.relativedelta(date2, date1)

print(r.months + (12 * r.years))

Output:

90

36将本地时间字符串转换为 UTC


from datetime import *

from dateutil import *

from dateutil.tz import *

utc_zone = tz.gettz(‘UTC’)

local_zone = tz.gettz(‘America/Chicago’)

utc_zone = tz.tzutc()

local_zone = tz.tzlocal()

local_time = datetime.strptime(“2020-10-25 15:12:00”, ‘%Y-%m-%d %H:%M:%S’)

print(local_time)

local_time = local_time.replace(tzinfo=local_zone)

print(local_time)

utc_time = local_time.astimezone(utc_zone)

print(utc_time)

utc_string = utc_time.strftime(‘%Y-%m-%d %H:%M:%S’)

print(utc_string)

Output:

2020-10-25 15:12:00

2020-10-25 15:12:00+05:30

2020-10-25 09:42:00+00:00

2020-10-25 09:42:00

37获取当月的最后一个星期四


import calendar

from datetime import datetime

month = calendar.monthcalendar(datetime.today().year, datetime.today().month)

thrusday = max(month[-1][calendar.THURSDAY], month[-2][calendar.THURSDAY])

print(thrusday)

Output:

27

38从特定日期查找一年中的第几周


import pendulum

dt = pendulum.parse(‘2015-05-18’)

print(dt.week_of_year)

dt = pendulum.parse(‘2019-12-01’)

print(dt.week_of_year)

dt = pendulum.parse(‘2018-01-21’)

print(dt.week_of_year)

Output:

21

48

3

39从给定日期获取星期几


import datetime

import calendar

dt = datetime.datetime(2021, 4, 25, 23, 24, 55, 173504)

print(calendar.day_name[dt.weekday()])

Output:

Sunday

40用 AM PM 打印当前时间


from datetime import datetime

print(datetime.today().strftime(“%I:%M %p”))

Output:

10:11 PM

41获得一个月的最后一天


import calendar

print(calendar.monthrange(2002, 1)[1])

print(calendar.monthrange(2008, 6)[1])

print(calendar.monthrange(2012, 2)[1])

print(calendar.monthrange(2015, 2)[1])

Output:

31

30

29

28

42从工作日值中获取工作日名称


import calendar

print(calendar.day_name[0])

print(calendar.day_name[1])

print(calendar.day_name[2])

print(calendar.day_name[3])

print(calendar.day_name[4])

print(calendar.day_name[5])

print(calendar.day_name[6])

Output:

Monday

Tuesday

Wednesday

Thursday

Friday

Saturday

Sunday

43将 N 小时数添加到当前日期时间


from datetime import datetime, timedelta

d = datetime.today() + timedelta(hours=18)

print(d)

Output:

2021-05-16 07:36:08.189948

44从当前日期获取年、月、日、小时、分钟


import datetime

now = datetime.datetime.now()

print(now.year, now.month, now.day, now.hour, now.minute, now.second)

Output:

2021 5 15 14 27 33

45获取特定月份和年份的最后一个星期日


import calendar

month = calendar.monthcalendar(2021, 2)

last_sunday = max(month[-1][calendar.SUNDAY], month[-2][calendar.SUNDAY])

print(last_sunday)

Output:

28

46查找特定日期的年份中的哪一天


import pendulum

dt = pendulum.parse(‘2015-05-18’)

print(dt.day_of_year)

dt = pendulum.parse(‘2019-12-01’)

print(dt.day_of_year)

dt = pendulum.parse(‘2018-01-21’)

print(dt.day_of_year)

Output:

138

335

21

47查找当前日期是工作日还是周末


import datetime

weekno = datetime.datetime.today().weekday()

if weekno < 5:

print(“Weekday”)

else:  # 5 Sat, 6 Sun

print(“Weekend”)

Output:

Weekday

48组合 datetime.date 和 datetime.time 对象


import datetime

d = datetime.datetime.combine(datetime.date(2020, 11, 14),

datetime.time(10, 23, 15))

print(d)

Output:

2020-11-14 10:23:15

49获得每月的第 5 个星期一


import calendar

c = calendar.Calendar(firstweekday=calendar.SUNDAY)

year = 2016

month = 2

monthcal = c.monthdatescalendar(year, month)

try:

fifth_monday = [day for week in monthcal for day in week if

day.weekday() == calendar.MONDAY and day.month == month][4]

print(fifth_monday)

except IndexError:

print(‘No date found’)

Output:

2016-02-29

50将日期时间对象转换为日期对象


from datetime import datetime

datetime_obj = datetime(2020, 12, 15, 10, 15, 45, 321474)

print(datetime_obj)

date_obj = datetime_obj.date()

print(date_obj)

Output:

2020-12-15 10:15:45.321474

2020-12-15

51获取没有微秒的当前日期时间


from datetime import datetime

print(datetime.now().isoformat(’ ', ‘seconds’))

Output:

2021-05-15 12:55:45

52将 N 秒数添加到特定日期时间


import datetime

a = datetime.datetime(2020, 12, 31, 23, 59, 45)

b = a + datetime.timedelta(seconds=30)

print(a)

print(b)

Output:

2020-12-31 23:59:45

2021-01-01 00:00:15

53从当前日期获取两位数的月份和日期


import datetime

dt = datetime.datetime.now()

print(dt.strftime(‘%m’))

print(‘{:02d}’.format(dt.month))

print(f’{dt.month:02d}')

print(‘%02d’ % dt.month)

print(dt.strftime(‘%d’))

print(‘{:02d}’.format(dt.day))

print(f’{dt.day:02d}')

print(‘%02d’ % dt.day)

Output:

05

05

05

05

15

15

15

15

54从特定日期获取月份数据的开始和结束日期


import pendulum

dt = pendulum.datetime(2012, 9, 5)

start = dt.start_of(‘month’)

print(start.to_datetime_string())

end = dt.end_of(‘month’)

print(end.to_datetime_string())

Output:

2012-09-01 00:00:00

2012-09-30 23:59:59

55以周为单位的两个日期之间的差异


from datetime import date

date1 = date(2020, 12, 23)

date2 = date(2021, 5, 11)

days = abs(date1 - date2).days

print(days // 7)

Output:

19

56将字符串格式的日期转换为 Unix 时间戳


import datetime

stime = ‘15/05/2021’

print(datetime.datetime.strptime(stime, “%d/%m/%Y”).timestamp())

Output:

1621017000.0

57获取最后一个周日和周六的日期


from datetime import datetime, timedelta

def prior_week_end():

return datetime.now() - timedelta(days=((datetime.now().isoweekday() + 1) % 7))

def prior_week_start():

return prior_week_end() - timedelta(days=6)

print(‘Sunday’, format(prior_week_start()))

print(‘Saturday’, format(prior_week_end()))

Output:

Sunday 2021-05-09 13:13:30.057765

Saturday 2021-05-15 13:13:30.058912

58检查对象是否属于 datetime.date 类型


import datetime

x = ‘2012-9-1’

y = datetime.date(2012, 9, 1)

print(isinstance(x, datetime.date))

print(isinstance(y, datetime.date))

Output:

False

True

59获取特定日期的周数


import datetime

print(datetime.date(2020, 5, 15).isocalendar()[1])

Output:

20

60获取 UTC 时间


from datetime import datetime

dt = datetime.utcnow()

print(dt)

Output:

2021-05-15 17:01:31.008808

61获取本周的开始和结束日期


import pendulum

today = pendulum.now()

start = today.start_of(‘week’)

print(start.to_datetime_string())

end = today.end_of(‘week’)

print(end.to_datetime_string())

Output:

2021-05-10 00:00:00

2021-05-16 23:59:59

62两个日期之间的差异(以分钟为单位)


from datetime import datetime

fmt = ‘%Y-%m-%d %H:%M:%S’

d1 = datetime.strptime(‘2010-01-01 17:31:22’, fmt)

d2 = datetime.strptime(‘2010-01-03 17:31:22’, fmt)

days_diff = d2 - d1

print(days_diff.days * 24 * 60)

Output:

2880

63将日期时间对象转换为日期字符串


import datetime

t = datetime.datetime(2020, 12, 23)

x = t.strftime(‘%m/%d/%Y’)

print(x)

Output:

12/23/2020

64获得上周五


from datetime import date

from datetime import timedelta

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

010-01-01 17:31:22’, fmt)

d2 = datetime.strptime(‘2010-01-03 17:31:22’, fmt)

days_diff = d2 - d1

print(days_diff.days * 24 * 60)

Output:

2880

63将日期时间对象转换为日期字符串


import datetime

t = datetime.datetime(2020, 12, 23)

x = t.strftime(‘%m/%d/%Y’)

print(x)

Output:

12/23/2020

64获得上周五


from datetime import date

from datetime import timedelta

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-4W0FH5jV-1711856376261)]
[外链图片转存中…(img-lPbWW21Z-1711856376262)]



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
[外链图片转存中…(img-QMSIXFdH-1711856376262)]

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值