Python日期时间处理相关函数
Python是一种简单易学、效率高的编程语言,具有很强的数据处理能力。在Python中,日期时间是经常用到的数据类型,例如在数据挖掘、统计分析和机器学习等领域中,都需要对时间进行处理和分析。Python提供了很多日期时间处理相关的函数,本文将重点介绍其中的一些函数。
1. time模块
time模块是Python标准库中的一个模块,提供了很多操作时间和日期的函数。以下是一些常用的函数:
(1) time()函数:返回当前时间的时间戳,即从1970年1月1日00:00:00 UTC到当前时间的秒数。
示例代码:
import time
t = time.time()
print(t)
输出:
1617381794.246972
(2) localtime()函数:将时间戳转换为本地时间,返回一个struct_time对象。
示例代码:
import time
t = time.time()
lt = time.localtime(t)
print(lt)
输出:
time.struct_time(tm_year=2021, tm_mon=4, tm_mday=2, tm_hour=9, tm_min=23, tm_sec=26, tm_wday=4, tm_yday=92, tm_isdst=0)
(3) strftime()函数:将struct_time对象转换为指定格式的字符串。
示例代码:
import time
t = time.time()
lt = time.localtime(t)
s = time.strftime("%Y-%m-%d %H:%M:%S", lt)
print(s)
输出:
2021-04-02 09:23:26
2. datetime模块
datetime模块提供了一个datetime类,用于处理日期和时间。以下是一些常用的函数:
(1) datetime.now()函数:返回当前日期和时间。
示例代码:
import datetime
dt = datetime.datetime.now()
print(dt)
输出:
2021-04-02 09:35:59.986203
(2) datetime.timestamp()函数:将datetime对象转换为时间戳。
示例代码:
import datetime
dt = datetime.datetime.now()
ts = dt.timestamp()
print(ts)
输出:
1617382558.023915
(3) datetime.strftime()函数:将datetime对象转换为指定格式的字符串。
示例代码:
import datetime
dt = datetime.datetime.now()
s = dt.strftime("%Y-%m-%d %H:%M:%S")
print(s)
输出:
2021-04-02 09:35:31
3. dateutil模块
dateutil模块是一个第三方库,用于处理各种日期和时间格式。以下是一些常用的函数:
(1) parse()函数:将字符串转换为datetime对象。
示例代码:
from dateutil.parser import parse
dt = parse("2021-04-02 09:38:47")
print(dt)
输出:
2021-04-02 09:38:47
(2) relativedelta()函数:计算两个日期之间的差值,返回一个timedelta对象。
示例代码:
from dateutil.relativedelta import relativedelta
dt1 = parse("2021-04-02 09:38:47")
dt2 = parse("2020-03-01 08:00:00")
delta = relativedelta(dt1, dt2)
print(delta)
输出:
relativedelta(years=+1, months=+1, days=+1, hours=+1, minutes=+38, seconds=+47)
(3) rrule()函数:生成指定规则的日期序列。
示例代码:
from dateutil.rrule import rrule, DAILY
dt1 = parse("2021-04-02 09:38:47")
dt2 = parse("2021-05-01 08:00:00")
rr = rrule(DAILY, dtstart=dt1, until=dt2)
for d in rr:
print(d)
输出:
2021-04-02 09:38:47
2021-04-03 09:38:47
2021-04-04 09:38:47
2021-04-05 09:38:47
……
2021-04-29 09:38:47
2021-04-30 09:38:47
2021-05-01 09:38:47
4. pandas模块
pandas模块是Python中一个非常流行的数据分析库,通常用于处理数据集,支持各种日期时间处理操作。以下是一些常用的函数:
(1) to_datetime()函数:将字符串转换为datetime对象。
示例代码:
import pandas as pd
s = pd.Series(['2021-04-01', '2021-04-02', '2021-04-03'])
dt = pd.to_datetime(s)
print(dt)
输出:
0 2021-04-01
1 2021-04-02
2 2021-04-03
dtype: datetime64[ns]
(2) date_range()函数:生成指定时间段的日期序列。
示例代码:
import pandas as pd
dt = pd.date_range(start='2021-04-01', end='2021-04-30', freq='D')
print(dt)
输出:
DatetimeIndex(['2021-04-01', '2021-04-02', '2021-04-03', '2021-04-04',
'2021-04-05', '2021-04-06', '2021-04-07', '2021-04-08',
'2021-04-09', '2021-04-10', '2021-04-11', '2021-04-12',
'2021-04-13', '2021-04-14', '2021-04-15', '2021-04-16',
'2021-04-17', '2021-04-18', '2021-04-19', '2021-04-20',
'2021-04-21', '2021-04-22', '2021-04-23', '2021-04-24',
'2021-04-25', '2021-04-26', '2021-04-27', '2021-04-28',
'2021-04-29', '2021-04-30'],
dtype='datetime64[ns]', freq='D')
(3) resample()函数:重采样时间序列数据。
示例代码:
import pandas as pd
import numpy as np
dti = pd.date_range(start='2021-04-01', end='2021-04-30', freq='D')
s = pd.Series(np.random.rand(len(dti)), index=dti)
s_res = s.resample('W').mean()
print(s_res)
输出:
2021-04-04 0.451624
2021-04-11 0.451232
2021-04-18 0.477529
2021-04-25 0.509542
2021-05-02 0.231218
Freq: W-SUN, dtype: float64
以上是常用的Python日期时间处理相关函数,可以根据具体的需求选择合适的函数进行使用。需要注意的是,在使用日期时间处理函数的过程中,尽量使用标准的日期时间格式,这样有利于提高程序的可移植性和可维护性。
