大家好,欢迎来到IT知识分享网。
在 Python 中显示当前时间是基础但实用的操作,以下是 5 种方法详解,涵盖基础到进阶应用,附带完整代码和原理说明:
1. 基础版:datetime.now()(推荐)
from datetime import datetime now = datetime.now() print("当前时间:", now) # 输出:2024-06-25 15:30:45.
关键点:
- datetime.now() 返回包含年月日、时分秒、微秒的 datetime 对象
- 默认格式:YYYY-MM-DD HH:MM:SS.microseconds
2. 格式化输出:strftime()
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S") print("格式化时间:", formatted_time) # 输出:2024-06-25 15:30:45
常用格式代码:
代码 |
含义 |
示例 |
%Y |
四位年份 |
2024 |
%m |
两位月份 |
06 |
%d |
两位日期 |
25 |
%H |
24小时制 |
15 |
%M |
分钟 |
30 |
%S |
秒 |
45 |
%A |
星期全称 |
Wednesday |
3. 获取独立时间分量
print("年份:", now.year) # 2024 print("月份:", now.month) # 6 print("当日:", now.day) # 25 print("小时:", now.hour) # 15 print("分钟:", now.minute) # 30 print("秒数:", now.second) # 45
应用场景:
- 制作定时任务(如 if now.hour == 12:)
- 生成按日期分类的文件名
4. 时区处理(pytz库)
from datetime import datetime import pytz # 获取指定时区时间 tz_shanghai = pytz.timezone('Asia/Shanghai') shanghai_time = datetime.now(tz_shanghai) print("上海时间:", shanghai_time) # 输出带时区的时间 # 时区转换 tz_ny = pytz.timezone('America/New_York') ny_time = shanghai_time.astimezone(tz_ny) print("纽约时间:", ny_time)
注意:
- 需安装库:pip install pytz
- 时区列表:pytz.all_timezones
5. 时间戳操作(Unix时间戳)
import time # 获取当前时间戳(秒级) timestamp = time.time() print("时间戳:", timestamp) # 输出:. # 时间戳转时间对象 timestamp_time = datetime.fromtimestamp(timestamp) print("转时间对象:", timestamp_time) # 时间对象转时间戳 new_timestamp = datetime.now().timestamp() print("新时间戳:", new_timestamp)
应用场景:
- 计算时间间隔
- 数据库存储时间
6. 完整案例:动态时钟
import time from datetime import datetime while True: now = datetime.now().strftime("%Y-%m-%d %H:%M:%S") print(f"\r当前时间: {now}", end="", flush=True) time.sleep(1) # 每秒刷新
效果:
终端显示持续更新的时间(按Ctrl+C停止)
7. 常见问题解答
Q1:如何显示中文星期?
weekdays = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] print(weekdays[datetime.now().weekday()]) # weekday()返回0-6
Q2:如何计算时间差?
from datetime import timedelta future_time = datetime.now() + timedelta(days=1, hours=3) print("明天的此时:", future_time)
Q3:为什么datetime.now()比time.time()慢?
- datetime.now() 要处理更多信息(年月日等)
- 只需时间戳时优先用 time.time()
方法 |
执行时间(百万次) |
适用场景 |
time.time() |
0.8秒 |
只需时间戳 |
datetime.now() |
1.2秒 |
需要完整时间信息 |
time.strftime() |
1.5秒 |
格式化输出 |
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/183493.html