Python中日期和时间的用法超强总结

1. Python中日期和时间相关库

Python中常用的日期和时间相关库有:datetime、time、calendar和dateutil等。

其中,datetime是最常被使用的日期时间相关的库。它提供了date、time、datetime、timedelta、tzinfo等类,用于处理日期和时间的各种操作。下面我们来详细介绍一下。

2. datetime模块常用方法

2.1 获取当前时间

我们可以使用datetime库中的now()方法获取当前本地时间。

import datetime

now = datetime.datetime.now()

print(now)

输出结果为:

2021-11-09 14:13:23.236187

2.2 datetime对象转时间戳

我们可以将datetime对象转换成时间戳,即从1970年1月1日起,到当前时间的秒数。

import datetime

now = datetime.datetime.now()

timestamp = int(now.timestamp())

print(timestamp)

输出结果为:

1636473220

2.3 时间戳转datetime对象

我们可以将时间戳转换成datetime对象。

import datetime

timestamp = 1636473220

dt_obj = datetime.datetime.fromtimestamp(timestamp)

print(dt_obj)

输出结果为:

2021-11-09 14:07:00

2.4 格式化输出

我们可以使用strftime()方法来将datetime对象格式化成指定格式的字符串。

以下是常用的格式化字符串,例如:%Y-%m-%d %H:%M:%S 表示年月日时分秒。

import datetime

now = datetime.datetime.now()

print(now.strftime('%Y-%m-%d %H:%M:%S'))

输出结果为:

2021-11-09 14:14:24

2.5 timedelta

timedelta是datetime库中的一个类,可以用于表示时间差,例如相差多少小时、分钟、秒等。我们可以将两个datetime对象相减,得到一个timedelta对象。

import datetime

now = datetime.datetime.now()

future_time = now + datetime.timedelta(hours=1)

time_diff = future_time - now

print(time_diff)

输出结果为:

1:00:00

3. time模块常用方法

3.1 获取当前时间

我们可以使用time模块中的time()方法获取当前本地时间的时间戳。

import time

timestamp = int(time.time())

print(timestamp)

输出结果为:

1636474584

3.2 时间戳转时间元组

我们可以将时间戳转换成时间元组。

import time

timestamp = 1636473220

time_tuple = time.localtime(timestamp)

print(time_tuple)

输出结果为:

time.struct_time(tm_year=2021, tm_mon=11, tm_mday=9, tm_hour=14, tm_min=7, tm_sec=0, tm_wday=1, tm_yday=313, tm_isdst=0)

3.3 时间元组转时间戳

我们可以将时间元组转换成时间戳。

import time

time_tuple = (2021, 11, 9, 14, 7, 0, 1, 313, 0)

timestamp = int(time.mktime(time_tuple))

print(timestamp)

输出结果为:

1636474020

3.4 格式化输出

我们可以使用strftime()方法来将时间元组格式化成指定格式的字符串。

import time

time_tuple = (2021, 11, 9, 14, 7, 0, 1, 313, 0)

time_str = time.strftime("%Y-%m-%d %H:%M:%S", time_tuple)

print(time_str)

输出结果为:

2021-11-09 14:07:00

4. calendar模块常用方法

4.1 获取月历

我们可以使用calendar库中的month()方法获取指定年月的月历。

import calendar

calendar_str = calendar.month(2021, 11)

print(calendar_str)

输出结果为:

   November 2021

Mo Tu We Th Fr Sa Su

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30

4.2 判断是否为闰年

我们可以使用isleap()方法来判断指定年份是否是闰年。

import calendar

is_leap = calendar.isleap(2020)

print(is_leap)

输出结果为:

True

5. dateutil模块常用方法

5.1 字符串转datetime对象

我们可以使用dateutil库中的parse()方法将字符串转换成datetime对象。

from dateutil.parser import parse

date_str = '2021-11-09 14:15:30'

dt_obj = parse(date_str)

print(dt_obj)

输出结果为:

2021-11-09 14:15:30

5.2 获取指定时区时间

我们可以使用dateutil库中的tz()方法获取指定时区的时间。

from datetime import datetime

from dateutil import tz

format = '%Y-%m-%d %H:%M:%S'

# 获取本地时间转换为+0800时区的时间

local_dt = datetime.strptime('2021-11-09 14:20:30', format)

local_tz = tz.gettz()

east_tz = tz.gettz('Asia/Shanghai')

local_dt = local_dt.replace(tzinfo=local_tz)

east_dt = local_dt.astimezone(east_tz)

print(east_dt.strftime(format))

输出结果为:

2021-11-09 14:20:30

6. 总结

本文介绍了Python中常用的日期和时间相关库,包括datetime、time、calendar和dateutil等,以及它们常用的方法和操作。在实际开发中,深入了解日期和时间操作可以提高效率和代码质量。

后端开发标签