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

如何使用Python的时间函数来处理日期和时间

发布时间:2023-06-01 08:30:55

Python是一种高级编程语言,它包含了许多内置的函数和库,其中包括处理日期和时间的函数。在Python中,时间函数是非常重要的,因为处理日期和时间往往是许多应用程序的基础。在本文中,我们将介绍如何使用Python的时间函数来处理日期和时间。

1. time库

Python的time库是用于处理时间的重要库,它包含了一些重要的函数,例如:

time():取当前时间,返回时间戳

sleep():在程序执行过程中暂停一定的时间

ctime():把时间戳转换为字符串

gmtime():把时间戳转换为struct_time

在使用这些函数之前,需要先导入time库,示例如下:

import time

1.1 time()

time()函数用于取当前时间的时间戳。时间戳是以浮点数表示的秒数,它表示自1970年1月1日0时0分0秒起经过的秒数。示例如下:

import time

timestamp = time.time()

print("当前时间戳为:", timestamp)

输出:

当前时间戳为: 1646706907.153295

1.2 sleep()

sleep()函数用于程序执行过程中暂停一定的时间。参数为暂停的时间,单位是秒。示例如下:

import time

print("程序开始执行")
time.sleep(2) # 暂停2秒
print("程序执行完毕")

输出:

程序开始执行
程序执行完毕

1.3 ctime()

ctime()函数把时间戳转换为字符串,其格式为“星期 月 日 时:分:秒 年”。示例如下:

import time

timestamp = time.time()
localtime = time.ctime(timestamp)

print("转换后的本地时间:", localtime)

输出:

转换后的本地时间: Sun Mar  6 14:08:52 2022

1.4 gmtime()

gmtime()函数把时间戳转换为struct_time结构体,该结构体包含了一些属性,例如年、月、日、时、分、秒等。示例如下:

import time

timestamp = time.time()
localtime = time.gmtime(timestamp)

print("转换后的struct_time结构体:", localtime)
print("年:", localtime.tm_year)
print("月:", localtime.tm_mon)
print("日:", localtime.tm_mday)
print("时:", localtime.tm_hour)
print("分:", localtime.tm_min)
print("秒:", localtime.tm_sec)

输出:

转换后的struct_time结构体: time.struct_time(tm_year=2022, tm_mon=3, tm_mday=6, tm_hour=12, tm_min=15, tm_sec=50, tm_wday=6, tm_yday=65, tm_isdst=0)
年: 2022
月: 3
日: 6
时: 12
分: 15
秒: 50

2. datetime库

Python的datetime库是处理日期和时间的另一种重要库。它提供了日期、时间、日期时间等很多类,以便更容易地处理日期和时间。在使用datetime库之前,需要先导入该库,示例如下:

import datetime

2.1 datetime类

datetime类是datetime库中最常用的类之一,它表示一个日期时间。该类包含了一些常用的属性和方法,例如:

now():获取当前日期时间

strftime():日期时间转字符串

strptime():字符串转日期时间

示例如下:

import datetime

now = datetime.datetime.now()
print("当前时间为:", now)
print("年:", now.year)
print("月:", now.month)
print("日:", now.day)
print("时:", now.hour)
print("分:", now.minute)
print("秒:", now.second)

输出:

当前时间为: 2022-03-06 14:31:13.834629
年: 2022
月: 3
日: 6
时: 14
分: 31
秒: 13

2.2 timedelta类

timedelta类表示两个日期时间之间的时间差,它可以表示年、月、日、小时、分钟、秒、毫秒等。该类包含了一些常用的属性和方法,例如:

days属性:表示天数

seconds属性:表示秒数

total_seconds()方法:返回总共的秒数

示例如下:

import datetime

start = datetime.datetime(2022, 2, 1, 0, 0, 0)
end = datetime.datetime(2022, 3, 1, 0, 0, 0)

delta = end - start

print(f"从{start}到{end},时间差为:{delta}")
print(f"时间差的天数为:{delta.days}天")
print(f"时间差的秒数为:{delta.seconds}秒")
print(f"时间差的总秒数为:{delta.total_seconds()}秒")

输出:

从2022-02-01 00:00:00到2022-03-01 00:00:00,时间差为:28 days, 0:00:00
时间差的天数为:28天
时间差的秒数为:0秒
时间差的总秒数为:2419200.0秒

2.3 strftime()函数

strftime()函数把日期时间转换为字符串。该函数有一个格式化字符串参数,用于指定输出的格式。常用的格式化字符串如下:

| 符号 | 意义 | 示例 |

| ---- | ----------------------------------------- | ---------------------- |

| %Y | 年份(4位数) | 2022 |

| %m | 月份(01-12) | 03 |

| %B | 月份(英文全称) | March |

| %d | 日份(01-31) | 06 |

| %A | 星期(英文全称) | Sunday |

| %H | 小时(24小时制) | 14 |

| %I | 小时(12小时制) | 02 |

| %M | 分钟(00-59) | 31 |

| %S | 秒(00-59) | 13 |

| %p | 上午或下午 | AM或PM |

| %j | 年内的第几天 | 065 |

| %U | 年内的第几周(周日是一周的 天) | 09 |

| %W | 年内的第几周(周一是一周的 天) | 10 |

| %w | 星期(数字,0-6,0表示星期日) | 0 |

| %Z | 时区的名称(例如UTC、GMT、CST) | China Standard Time |

| %z | 时区差异(例如+0800) | +0800 |

| %c | 日期时间的字符串表示(例如Fri Mar 4 15:02:33 2016) | Fri Mar 4 15:02:33 2016 |

| %x | 日期的字符串表示(例如03/04/16) | 03/06/22 |

| %X | 时间的字符串表示(例如15:02:33) | 14:38:53 |

示例如下:

import datetime

now = datetime.datetime.now()
print("当前时间的字符串表示:", now.strftime("%Y-%m-%d %H:%M:%S"))

输出:

当前时间的字符串表示: 2022-03-06 14:38:53

2.4 strptime()函数

strptime()函数把字符串转换为日期时间。该函数有两个参数, 个参数表示字符串,第二个参数表示字符串的格式。示例如下:

`python

import datetime

str_time = "2022-03-06 14:45:12"

date_time = datetime.datetime.strptime(str_time, "%Y