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

Python日期时间处理相关函数

发布时间:2023-06-16 07:42:56

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日期时间处理相关函数,可以根据具体的需求选择合适的函数进行使用。需要注意的是,在使用日期时间处理函数的过程中,尽量使用标准的日期时间格式,这样有利于提高程序的可移植性和可维护性。