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中轻松玩转时间啦!(ノ◕ヮ◕)ノ*:・゚✧
有什么问题随时问我哦~ ٩(◕‿◕。)۶