本文目录导读:

在Python中获取当前时间有多种方法,我来介绍最常用的几种。
使用 datetime 模块(推荐)
from datetime import datetime, date, time
# 获取当前日期和时间
now = datetime.now()
print("当前时间:", now)
# 获取当前日期
today = date.today()
print("当前日期:", today)
# 获取当前时间(不含日期)
current_time = datetime.now().time()
print("当前时间:", current_time)
格式化输出
from datetime import datetime
now = datetime.now()
# 格式化输出
print("年-月-日:", now.strftime("%Y-%m-%d"))
print("年-月-日 时:分:秒:", now.strftime("%Y-%m-%d %H:%M:%S"))
print("12小时制:", now.strftime("%Y-%m-%d %I:%M:%S %p"))
print("中文格式:", now.strftime("%Y年%m月%d日 %H时%M分%S秒"))
# 只获取特定部分
print("年份:", now.year)
print("月份:", now.month)
print("日:", now.day)
print("小时:", now.hour)
print("分钟:", now.minute)
print("秒:", now.second)
print("微秒:", now.microsecond)
使用 time 模块
import time
# 获取当前时间戳
timestamp = time.time()
print("时间戳:", timestamp)
# 获取本地时间(结构化时间)
local_time = time.localtime()
print("结构化时间:", local_time)
# 格式化输出
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print("格式化时间:", formatted_time)
# 获取更详细的结构化信息
print("年:", local_time.tm_year)
print("月:", local_time.tm_mon)
print("日:", local_time.tm_mday)
print("时:", local_time.tm_hour)
print("分:", local_time.tm_min)
print("秒:", local_time.tm_sec)
print("星期几(0-6):", local_time.tm_wday)
print("一年中的第几天:", local_time.tm_yday)
实用案例
计时器示例
import time
from datetime import datetime, timedelta
# 计算代码执行时间
start_time = time.time()
# 模拟一些操作
time.sleep(2)
end_time = time.time()
elapsed = end_time - start_time
print(f"代码执行了 {elapsed:.2f} 秒")
日期计算
from datetime import datetime, timedelta
now = datetime.now()
# 计算未来的时间
future = now + timedelta(days=7, hours=3)
print("7天3小时后:", future)
# 计算过去的时间
past = now - timedelta(days=30)
print("30天前:", past)
# 比较时间
if now.hour < 12:
print("上午好!")
else:
print("下午好!")
获取不同时区的时间
from datetime import datetime
import pytz # 需要安装:pip install pytz
# 获取北京时间
beijing_tz = pytz.timezone('Asia/Shanghai')
beijing_time = datetime.now(beijing_tz)
print("北京时间:", beijing_time.strftime("%Y-%m-%d %H:%M:%S"))
# 获取纽约时间
ny_tz = pytz.timezone('America/New_York')
ny_time = datetime.now(ny_tz)
print("纽约时间:", ny_time.strftime("%Y-%m-%d %H:%M:%S"))
# 获取伦敦时间
london_tz = pytz.timezone('Europe/London')
london_time = datetime.now(london_tz)
print("伦敦时间:", london_time.strftime("%Y-%m-%d %H:%M:%S"))
常用格式化符号说明
| 符号 | 说明 | 示例 |
|---|---|---|
| %Y | 四位数的年份 | 2024 |
| %y | 两位数的年份 | 24 |
| %m | 月份(01-12) | 03 |
| %d | 日(01-31) | 15 |
| %H | 24小时制小时(00-23) | 14 |
| %I | 12小时制小时(01-12) | 02 |
| %M | 分钟(00-59) | 30 |
| %S | 秒(00-59) | 45 |
| %p | AM或PM | PM |
| %A | 完整的星期名称 | Monday |
| %a | 简写的星期名称 | Mon |
| %B | 完整的月份名称 | March |
| %b | 简写的月份名称 | Mar |
推荐方案
- 日常使用:推荐使用
datetime模块,功能更强大 - 简单计时:使用
time模块 - 需要时区:结合
pytz使用
最简单的获取时间方法:
from datetime import datetime print(datetime.now()) # 直接输出当前时间
这些方法基本能满足大部分时间获取的需求,你可以根据具体情况选择合适的方式。