python日期时间处理库总结(time,datetime,dateutil等)

14 篇文章 0 订阅
1 篇文章 0 订阅

python日期时间处理库总结(time,datetime,dateutil等)


1. 各种时间类
三方库属性创建
<time>struct_timetm_year~tm_sec; tm_wday(周0-6); tm_yday(日0-366)-
<datetime.time>timehour; minute; secondtime(14,59,59)
<datetime.date>dateyear; month; daydate(2020,1,1)
<datetime.datetime>datetimeyear ~ seconddatetime(2020,1,1,14,59,59)
<pandas>Timestampyear ~ second接受datetime/date/str;
pd.Timestamp(‘2019-1-1’)
pd.Timestamp(date(2020,1,1))

示例:
在这里插入图片描述


2. 时间类的互相转化
A —> Btimestampdatetimedate
timestamp-=datetime.fromtimestamp(ts)=date.fromtimestampe(ts)
datetime=dt.timestamp()
date=dt.timestamp()
str=datetime.fromiosformat(str)=date.fromiosformat(str)

完整代码:

from datetime import time, date, datetime
from dateutil.parser import parse

class TimeType_Error(Exception):
    pass

def converse_timeType(src, dst):
    """
    多种时间日期格式间相互转化
    :param src: 原数值
    :param dst: 目标的格式 ['str', 'datetime', 'date', 'time', 'timestamp']
    :return: 目标数值
    """
    _type = type(src)
    if dst == 'str':
        return str(src)
    if _type == str:
        dt = parse(src) # 这是datetime格式
        if dst == 'datetime':
            return dt
        if dst == 'date':
            return date(dt.year, dt.month, dt.day)
        if dst == 'time':
            return time(dt.hour, dt.minute, dt.second)
        if dst == 'timestamp':
            return dt.timestamp()
        raise TimeType_Error
    if _type == datetime:
        if dst == 'datetime':
            return src
        if dst == 'date':
            return date(src.year, src.month, src.day)
        if dst == 'time':
            return time(src.hour, src.minute, src.second)
        if dst == 'timestamp':
            return src.timestamp()
        raise TimeType_Error
    if _type == date:
        if dst == 'datetime':
            return datetime(src.year, src.month, src.day, 0, 0, 0)
        if dst == 'date':
            return src
        if dst == 'time':
            return time(0, 0, 0)
        if dst == 'timestamp':
            return src.timestamp()
        raise TimeType_Error
    if _type == time:
        if dst == 'datetime':
            return datetime(1970, 1, 1, src.hour, src.minute, src.second)
        if dst == 'date':
            return date(1970, 1, 1)
        if dst == 'time':
            return src
        if dst == 'timestamp':
            return 0
        raise TimeType_Error
    if _type in [float, int]: # timestamp类
        src = int(src)
        if dst == 'datetime':
            return datetime.fromtimestamp(src)
        if dst == 'date':
            return date.fromtimestamp(src)
        if dst == 'time':
            dt = datetime.fromtimestamp(src)
            return time(dt.hour, dt.minute, dt.second)
        if dst == 'timestamp':
            return src
        raise TimeType_Error

    raise TimeType_Error

3. 关于时间日期的常用例子
3.1 获取当前时间
  • datetime格式(精确到秒): datetime.today()
  • date格式: date.today()
  • 时间戳: time.time() ps: 这个time不是datetime中的库,易混淆
3.2 获取昨天,明天(指定间隔时间/日期)

datetime.timedelta用法: 仅支持datetime和date,不支持time

from datetime import datetime, timedelta
# 昨天的date
date.today() -  timedelta(days=1)

# 下一分钟的datetime
datetime.today() + timedelta(minutes=1)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 有许多用于日期分析和处理的模块,其中最常用的是 datetimedateutildatetime 模块提供了日期时间的类,可以用来执行各种日期时间的操作,例如计算两个日期之间的时间差、将日期时间格式化为字符串等等。以下是一些 datetime 的示例代码: ```python import datetime # 获取当前日期时间 now = datetime.datetime.now() # 输出当前日期时间 print("当前日期时间是:") print(now) # 计算两个日期之间的时间date1 = datetime.date(2021, 1, 1) date2 = datetime.date(2021, 1, 10) delta = date2 - date1 print("两个日期之间的时间差是:") print(delta.days) # 将日期时间格式化为字符串 now_str = now.strftime("%Y-%m-%d %H:%M:%S") print("当前日期时间的字符串格式是:") print(now_str) # 将字符串转换为日期时间 date_str = "2021-01-01" date = datetime.datetime.strptime(date_str, "%Y-%m-%d") print("字符串转换为日期时间:") print(date) ``` dateutil 模块是一个第三方,提供了一些更高级的日期时间处理功能,例如可以处理各种不同的日期时间格式、可以解析出日期时间中的各个部分等等。以下是一个 dateutil 的示例代码: ```python from dateutil import parser # 将字符串转换为日期时间 date_str = "Fri Jan 01 2021 00:00:00 GMT-0800 (Pacific Standard Time)" date = parser.parse(date_str) print("字符串转换为日期时间:") print(date) # 解析出日期时间中的各个部分 year = date.year month = date.month day = date.day hour = date.hour minute = date.minute second = date.second print("解析出日期时间中的各个部分:") print(year, month, day, hour, minute, second) ``` 除了 datetimedateutil,还有许多其他的日期处理,例如 arrow、pendulum 等等。不同的适用于不同的情况,需要根据具体需求来选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值