Python 中如何获取当前时间?

Python 获取当前时间的两种主要方式:datetime.now()(推荐,功能全)和 time 模块。本文介绍格式化输出、时间戳获取和时区处理。

最佳实践
Python 中如何获取当前时间?封面

最常用的方式:datetime.now() 得到当前日期时间对象,再用 strftime() 格式化输出。只需要时间戳时用 time.time()

方法一:datetime 模块(推荐)

from datetime import datetime

now = datetime.now()
print(now)                          # 2024-01-15 10:30:45.123456
print(now.strftime("%H:%M:%S"))     # 10:30:45
print(now.strftime("%Y-%m-%d %H:%M:%S"))  # 2024-01-15 10:30:45

strftime 常用格式符:%Y 年、%m 月、%d 日、%H 时(24小时)、%M 分、%S 秒。

方法二:time 模块

import time

t = time.localtime()
print(time.strftime("%H:%M:%S", t))  # 10:30:45

print(time.time())                   # 1705287045.123(Unix 时间戳)

time.time() 返回秒级时间戳,做计时、存储时间时最方便。

时区处理

datetime.now() 返回的是本地时区的"朴素"时间。需要带时区信息(推荐生产环境使用):

from datetime import datetime, timezone

now = datetime.now(timezone.utc)          # UTC 时间
print(now.isoformat())                    # 2024-01-15T02:30:45+00:00

存储和传输时间建议统一用 UTC 或时间戳,展示时再转本地时区。

常见问题(FAQ)

Q:now() 和 today() 有区别吗?
A:datetime.now()datetime.today() 基本等价,都返回本地当前时间;now(tz) 可以指定时区,更灵活。

Q:如何获取毫秒/微秒?
A:now().microsecond 取微秒部分;毫秒可以 int(time.time() * 1000)

Q:日志里的时间应该用哪种?
A:建议 ISO 8601 格式(now.isoformat())或 Unix 时间戳,机器可读性好,日志平台(包括观测云)都能自动解析。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台