欢迎访问宙启技术站
智能推送

如何使用Python函数对日期进行格式化和解析?

发布时间:2023-06-20 08:50:52

日期和时间是在许多应用程序中经常使用的重要数据类型。Python 提供了几个模块来处理日期和时间。其中最常用的是 datetime 模块。 datetime 模块提供了许多函数来格式化和解析日期时间。

在 Python 中,日期和时间可以表示为 datetime 类的对象。 datetime 类包含了年、月、日、时、分、秒和毫秒等所有信息。利用 datetime 对象,我们可以方便地进行日期和时间的计算、比较和格式化。

1. 格式化日期和时间

在 Python 中,我们可以使用 strftime() 函数来将日期和时间格式化为一个字符串。strftime() 函数使用格式化字符串来指定日期和时间的输出格式。

以下是一些常用的格式化字符串:

%Y: 年份,例如:2019

%m: 月份,01-12

%d: 日期,01-31

%H: 小时,00-23

%M: 分钟,00-59

%S: 秒,00-59

%Z: 时区名称,例如:CST

%a: 星期缩写,例如:Sun

%A: 星期全称,例如:Sunday

%b: 月份缩写,例如:Jan

%B: 月份全称,例如:January

%c: 日期时间字符串,例如:Mon Sep 30 07:06:05 2019

%p: 上午或下午,例如:PM

%j: 年份中的天数,001-366

%U: 周数,01-53

%w: 星期,0-6

%x: 日期字符串,例如:09/30/19

%X: 时间字符串,例如:07:06:05

下面是一个将日期和时间格式化为字符串的例子:

import datetime

now = datetime.datetime.now()

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

运行结果:

2022-02-22 16:45:12

2. 解析日期和时间

除了将日期和时间格式化为字符串之外,我们还可以使用 strptime() 函数来解析日期和时间字符串。strptime() 函数使用格式化字符串来指定日期和时间字符串的格式。

以下是一些常用的格式化字符串:

%Y: 年份,例如:2019

%m: 月份,01-12

%d: 日期,01-31

%H: 小时,00-23

%M: 分钟,00-59

%S: 秒,00-59

%Z: 时区名称,例如:CST

%a: 星期缩写,例如:Sun

%A: 星期全称,例如:Sunday

%b: 月份缩写,例如:Jan

%B: 月份全称,例如:January

%c: 日期时间字符串,例如:Mon Sep 30 07:06:05 2019

%p: 上午或下午,例如:PM

%j: 年份中的天数,001-366

%U: 周数,01-53

%w: 星期,0-6

%x: 日期字符串,例如:09/30/19

%X: 时间字符串,例如:07:06:05

下面是一个解析日期和时间字符串的例子:

import datetime

date_string = '2022-02-22'

dt = datetime.datetime.strptime(date_string, '%Y-%m-%d')

print(dt)

运行结果:

2022-02-22 00:00:00

3. 计算日期和时间

利用 datetime 模块,我们可以方便地进行日期和时间的计算。 datetime 对象支持加、减和比较操作。

以下是一些常用的 datetime 对象的属性和方法:

year: 年份

month: 月份

day: 日期

hour: 小时

minute: 分钟

second: 秒

microsecond: 微秒

weekday(): 返回星期几,0-6 对应周日到周六

isoweekday(): 返回星期几,1-7 对应周一到周日

strftime(): 格式化日期时间

strptime(): 解析日期时间

下面是一个计算日期和时间的例子:

import datetime

now = datetime.datetime.now()

print('现在时间: ', now)

# 加减天数

delta = datetime.timedelta(days=7)

next_week = now + delta

last_week = now - delta

print('下周时间: ', next_week)

print('上周时间: ', last_week)

# 计算两个日期之差

start_date = datetime.datetime(2022, 1, 1)

end_date = datetime.datetime(2022, 2, 1)

delta = end_date - start_date

print('两个日期之差: ', delta)

print('天数: ', delta.days)

print('秒数: ', delta.seconds)

运行结果:

现在时间:  2022-02-22 16:45:11.922144

下周时间:  2022-03-01 16:45:11.922144

上周时间:  2022-02-15 16:45:11.922144

两个日期之差:  31 days, 0:00:00

天数:  31

秒数:  0

总结:

以上是在 Python 中如何使用 datetime 模块对日期和时间进行格式化和解析,以及进行日期和时间的计算的一些方法。通过这些方法,我们可以方便地操作日期和时间,并将它们转换为需要的格式。掌握这些技术对于 Python 程序员来说是非常基础和必要的。