Skip to content

Latest commit

 

History

History
192 lines (156 loc) · 6.01 KB

16_python_datetime_cn.md

File metadata and controls

192 lines (156 loc) · 6.01 KB

30天Python编程挑战:第16天 - Python日期时间

📘 第16天

Python datetime

Python有一个 datetime 模块用于处理日期和时间。

importdatetimeprint(dir(datetime)) ['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'sys', 'time', 'timedelta', 'timezone', 'tzinfo']

通过dir或help内置命令,可以了解特定模块中可用的函数。如你所见,datetime模块中有许多函数,但我们将重点关注 datedatetimetimetimedelta。让我们一个一个地看。

获取 datetime 信息

fromdatetimeimportdatetimenow=datetime.now() print(now) # 2021-07-08 07:34:46.549883day=now.day# 8month=now.month# 7year=now.year# 2021hour=now.hour# 7minute=now.minute# 38second=now.secondtimestamp=now.timestamp() print(day, month, year, hour, minute) print('timestamp', timestamp) print(f'{day}/{month}/{year}, {hour}:{minute}') # 8/7/2021, 7:38

时间戳或Unix时间戳是从1970年1月1日UTC开始经过的秒数。

使用 strftime 格式化日期输出

fromdatetimeimportdatetimenew_year=datetime(2020, 1, 1) print(new_year) # 2020-01-01 00:00:00day=new_year.daymonth=new_year.monthyear=new_year.yearhour=new_year.hourminute=new_year.minutesecond=new_year.secondprint(day, month, year, hour, minute) #1 1 2020 0 0print(f'{day}/{month}/{year}, {hour}:{minute}') # 1/1/2020, 0:0

使用 strftime 方法格式化日期时间,相关文档可以在这里找到。

fromdatetimeimportdatetime# 当前日期和时间now=datetime.now() t=now.strftime("%H:%M:%S") print("时间:", t) time_one=now.strftime("%m/%d/%Y, %H:%M:%S") # mm/dd/YY H:M:S 格式print("时间一:", time_one) time_two=now.strftime("%d/%m/%Y, %H:%M:%S") # dd/mm/YY H:M:S 格式print("时间二:", time_two)
时间: 01:05:01 时间一: 12/05/2019, 01:05:01 时间二: 05/12/2019, 01:05:01

以下是我们用来格式化时间的所有 strftime 符号。这个模块的所有格式示例。

strftime

使用 strptime 将字符串转换为时间

这里有一个文档,有助于理解格式。

fromdatetimeimportdatetimedate_string="5 December, 2019"print("date_string =", date_string) date_object=datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object)
date_string = 5 December, 2019 date_object = 2019-12-05 00:00:00

datetime 使用 date

fromdatetimeimportdated=date(2020, 1, 1) print(d) print('当前日期:', d.today()) # 2019-12-05# 今天的日期对象today=date.today() print("当前年份:", today.year) # 2019print("当前月份:", today.month) # 12print("当前日:", today.day) # 5

使用Time对象表示时间

fromdatetimeimporttime# time(hour = 0, minute = 0, second = 0)a=time() print("a =", a) # time(hour, minute 和 second)b=time(10, 30, 50) print("b =", b) # time(hour, minute 和 second)c=time(hour=10, minute=30, second=50) print("c =", c) # time(hour, minute, second, microsecond)d=time(10, 30, 50, 200555) print("d =", d)

输出:
a = 00:00:00
b = 10:30:50
c = 10:30:50
d = 10:30:50.200555

计算两个时间点之间的差异

today=date(year=2019, month=12, day=5) new_year=date(year=2020, month=1, day=1) time_left_for_newyear=new_year-today# 距离新年的时间: 27 days, 0:00:00print('距离新年的时间: ', time_left_for_newyear) t1=datetime(year=2019, month=12, day=5, hour=0, minute=59, second=0) t2=datetime(year=2020, month=1, day=1, hour=0, minute=0, second=0) diff=t2-t1print('距离新年的时间:', diff) # 距离新年的时间: 26 days, 23: 01: 00

使用 timedelta 计算两个时间点之间的差异

fromdatetimeimporttimedeltat1=timedelta(weeks=12, days=10, hours=4, seconds=20) t2=timedelta(days=7, hours=5, minutes=3, seconds=30) t3=t1-t2print("t3 =", t3)
date_string = 5 December, 2019 date_object = 2019-12-05 00:00:00 t3 = 86 days, 22:56:50

🌕 你太了不起了。你在通往卓越的道路上已经前进了16步。现在做一些练习锻炼你的大脑和肌肉。

💻 练习 - 第16天

  1. 从datetime模块获取当前的日、月、年、小时、分钟和时间戳
  2. 使用此格式格式化当前日期:"%m/%d/%Y, %H:%M:%S"
  3. 今天是2019年12月5日。将此时间字符串转换为时间。
  4. 计算现在和新年之间的时间差。
  5. 计算1970年1月1日和现在之间的时间差。
  6. 思考,你可以将datetime模块用于什么?例如:
    • 时间序列分析
    • 获取应用程序中任何活动的时间戳
    • 在博客上添加帖子

🎉 恭喜!🎉

<< 第15天 | 第17天 >>

close