详细介绍python的这2个库 arrow、humanize,尤其是可以把时间转成人类可阅读的文本

bluesky7天前 ⋅ 149 阅读

arrowhumanize 是两个非常实用的 Python 库,主要用于处理时间和日期,并且可以将时间转换为人类可读的文本。下面我将详细介绍这两个库的功能和用法。

1. arrow

arrow 是一个用于处理日期和时间的 Python 库,它提供了比标准库 datetime 更简洁、更易用的 API。arrow 的主要特点是能够轻松地进行时区转换、时间差计算以及格式化输出。

安装

你可以通过 pip 安装 arrow

pip install arrow

主要功能

  • 创建时间对象

    import arrow
    
    # 获取当前时间
    now = arrow.now()
    print(now)
    
    # 创建指定时间
    specific_time = arrow.get('2023-10-01 12:00:00')
    print(specific_time)
    
  • 时区转换

    # 将时间转换为指定时区
    utc_time = arrow.utcnow()
    local_time = utc_time.to('Asia/Shanghai')
    print(local_time)
    
  • 时间差计算

    # 计算两个时间之间的差值
    start_time = arrow.get('2023-10-01 12:00:00')
    end_time = arrow.get('2023-10-02 14:00:00')
    duration = end_time - start_time
    print(duration)
    
  • 格式化输出

    # 格式化输出时间
    formatted_time = now.format('YYYY-MM-DD HH:mm:ss')
    print(formatted_time)
    
  • 人类可读的时间差

    # 将时间差转换为人类可读的文本
    human_readable = now.humanize()
    print(human_readable)  # 例如: "just now", "2 hours ago", "in 3 days"
    

2. humanize

humanize 是一个用于将数字、时间、文件大小等转换为人类可读格式的 Python 库。它特别适合用于生成用户友好的文本输出。

安装

你可以通过 pip 安装 humanize

pip install humanize

主要功能

  • 时间差转换为人类可读文本

    import humanize
    import datetime
    
    # 计算时间差
    now = datetime.datetime.now()
    past_time = now - datetime.timedelta(hours=3)
    
    # 将时间差转换为人类可读的文本
    human_readable = humanize.naturaltime(past_time)
    print(human_readable)  # 例如: "3 hours ago"
    
  • 数字转换为人类可读文本

    # 将大数字转换为人类可读的文本
    large_number = 123456789
    human_readable = humanize.intcomma(large_number)
    print(human_readable)  # 例如: "123,456,789"
    
  • 文件大小转换为人类可读文本

    # 将文件大小转换为人类可读的文本
    file_size = 1024 * 1024 * 5  # 5 MB
    human_readable = humanize.naturalsize(file_size)
    print(human_readable)  # 例如: "5.0 MB"
    
  • 日期转换为人类可读文本

    # 将日期转换为人类可读的文本
    date = datetime.datetime(2023, 10, 1)
    human_readable = humanize.naturalday(date)
    print(human_readable)  # 例如: "Oct 01"
    

结合使用 arrowhumanize

你可以将 arrowhumanize 结合使用,以便更灵活地处理时间和生成人类可读的文本。

import arrow
import humanize

# 获取当前时间
now = arrow.now()

# 获取过去的时间
past_time = now.shift(hours=-3)

# 将时间差转换为人类可读的文本
human_readable = humanize.naturaltime(past_time)
print(human_readable)  # 例如: "3 hours ago"

总结

  • arrow 主要用于处理日期和时间,提供了丰富的功能,如时区转换、时间差计算、格式化输出等。
  • humanize 主要用于将数字、时间、文件大小等转换为人类可读的文本,适合生成用户友好的输出。

通过结合使用这两个库,你可以轻松地处理时间数据,并将其转换为用户易于理解的格式。

全部评论: 0

    相关推荐