Featured image of post Python Basic 18 时间处理

Python Basic 18 时间处理

本篇文章主要 Python 常用的时间处理方法

Python中有超强大的时间处理工具!让我们一起看一看~ (◕‿◕✿)

time 模块 ⏰

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import time

# 获取当前时间戳 (从1970年1月1日开始的秒数)
now = time.time()  # 输出类似:1621234567.890 ⏱️
print(f"当前时间戳: {now}")

# 让程序暂停一会儿 (单位是秒)
time.sleep(2.5)  # zzz...💤
print("睡醒了~")

# 获取本地时间的结构化表示
local_time = time.localtime()
print(local_time)
# 输出: time.struct_time(tm_year=2023, tm_mon=5, tm_mday=15,...) 📅

datetime 模块 📆 (这个超常用!)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from datetime import datetime, date, timedelta

# 获取当前日期和时间
now = datetime.now()
print(f"现在时间是: {now}")  # 2023-05-15 14:30:45.123456 🕒

# 单独获取日期或时间
today = date.today()
print(f"今天是: {today}")  # 2023-05-15 🌞

# 创建特定时间
birthday = datetime(1999, 12, 31, 23, 59)
print(f"我的生日是: {birthday}")  # 1999-12-31 23:59:00 🎂

# 时间计算 (超方便!)
tomorrow = today + timedelta(days=1)
print(f"明天是: {tomorrow}")  # 2023-05-16 ➡️

# 计算两个时间的差
time_diff = birthday - datetime.now()  # 距离生日还有...⏳
print(time_diff)

时间格式化 🎨

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# strftime - 时间转字符串 (超强大!)
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"格式化时间: {formatted}")  # 2023-05-15 14:30:45 🖍️

# strptime - 字符串转时间
parsed_time = datetime.strptime("2023-01-01", "%Y-%m-%d")
print(f"解析后的时间: {parsed_time}")  # 2023-01-01 00:00:00 🧩

# 常用格式符号表 (偷偷告诉你~)
# %Y - 四位年份
# %m - 两位月份
# %d - 两位日期
# %H - 24小时制小时
# %M - 分钟
# %S - 秒
# %A - 星期全名 (e.g., Monday)
# %B - 月份全名 (e.g., January)

时区处理 🌍

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
from datetime import timezone
import pytz  # 需要安装: pip install pytz

# 创建带有时区的时间
utc_now = datetime.now(timezone.utc)
print(f"UTC时间: {utc_now}")  # 2023-05-15 12:30:45+00:00 🌎

# 时区转换
eastern = pytz.timezone('US/Eastern')
ny_time = utc_now.astimezone(eastern)
print(f"纽约时间: {ny_time}")  # 2023-05-15 08:30:45-04:00 🗽

# 所有时区列表
#print(pytz.all_timezones)  # 超级多时区!😵

小技巧和注意事项 💡

  • 性能考虑time.time()datetime.now() 更快,适合计时
  • 时间戳转换
    1
    2
    
    timestamp = datetime.now().timestamp()  # 转时间戳
    from_timestamp = datetime.fromtimestamp(1621234567)  # 时间戳转datetime
    
  • 计算工作日
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    
    from datetime import timedelta
    
    def add_business_days(start_date, business_days):
        current = start_date
        added_days = 0
        while added_days < business_days:
            current += timedelta(days=1)
            if current.weekday() < 5:  # 0-4是周一到周五
                added_days += 1
        return current
    
  • 处理月的最后一天
    1
    2
    3
    4
    
    from calendar import monthrange
    
    _, last_day = monthrange(2023, 2)  # 获取2023年2月的最后一天
    print(last_day)  # 28 🏁
    

记住这些,你就能在Python中轻松玩转时间啦!(ノ◕ヮ◕)ノ*:・゚✧

有什么问题随时问我哦~ ٩(◕‿◕。)۶

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计