在 Python 中获取当前日期和时间有多种方法,以下是最常用的几种方式(按推荐顺序排列)

在 Python 中获取当前日期和时间有多种方法,以下是最常用的几种方式(按推荐顺序排列)

在 Python 中获取当前日期和时间有多种方法,以下是最常用的几种方式(按推荐顺序排列):

### 1. 使用 `datetime` 模块(最常用、最全面)```pythonfrom datetime import datetime

# 获取当前日期和时间(本地时间)current_datetime = datetime.now()print(f"当前日期时间: {current_datetime}")# 输出示例: 当前日期时间: 2025-07-30 23:45:12.345678

# 获取当前日期current_date = datetime.now().date()print(f"当前日期: {current_date}")# 输出示例: 当前日期: 2025-07-30

# 获取当前时间current_time = datetime.now().time()print(f"当前时间: {current_time}")# 输出示例: 当前时间: 23:45:12.345678```

### 2. 使用 `time` 模块(适用于时间戳和性能场景)```pythonimport time

# 获取时间戳(秒级)timestamp = time.time()print(f"时间戳(秒): {timestamp}")# 输出示例: 时间戳(秒): 1893455112.345

# 获取结构化时间struct_time = time.localtime()print(f"结构化时间: {struct_time}")# 输出示例: 结构化时间: time.struct_time(tm_year=2025, tm_mon=7, tm_mday=30, tm_hour=23, ...)

# 获取可读格式时间readable_time = time.strftime("%Y-%m-%d %H:%M:%S", struct_time)print(f"可读时间: {readable_time}")# 输出示例: 可读时间: 2025-07-30 23:45:12```

### 3. 使用 `calendar` 模块(日历相关)```pythonimport calendarimport time

# 获取当前时间戳(秒级)timestamp = calendar.timegm(time.gmtime())print(f"UTC时间戳: {timestamp}")# 输出示例: UTC时间戳: 1893455112```

### 4. 获取时区感知时间(Django 项目推荐)```pythonfrom django.utils import timezone

# 获取当前时区感知时间aware_now = timezone.now()print(f"时区感知时间: {aware_now}")# 输出示例: 时区感知时间: 2025-07-30 23:45:12.345678+08:00```

### 5. 高级用法:带格式化输出```pythonfrom datetime import datetime

now = datetime.now()

# 自定义格式化formatted = now.strftime("%Y年%m月%d日 %H:%M:%S")print(f"格式化时间: {formatted}")# 输出示例: 格式化时间: 2025年07月30日 23:45:12

# ISO 标准格式iso_format = now.isoformat()print(f"ISO格式: {iso_format}")# 输出示例: ISO格式: 2025-07-30T23:45:12.345678```

### 企业级最佳实践

```pythonfrom datetime import datetime, timezoneimport time

def get_current_datetime(use_utc=False, as_string=False, fmt="%Y-%m-%d %H:%M:%S"): """ 获取当前日期时间(企业级封装) 参数: use_utc (bool): 是否使用UTC时间(默认本地时间) as_string (bool): 是否返回字符串格式(默认返回datetime对象) fmt (str): 格式化字符串(当as_string=True时有效) 返回: datetime | str: 当前日期时间 """ # 获取时间对象 if use_utc: now = datetime.now(timezone.utc) else: now = datetime.now() # 转换为字符串 if as_string: return now.strftime(fmt) return now

# 使用示例print("本地时间对象:", get_current_datetime())print("UTC时间对象:", get_current_datetime(use_utc=True))print("格式化时间:", get_current_datetime(as_string=True))print("自定义格式:", get_current_datetime(as_string=True, fmt="%Y/%m/%d %H:%M"))```

### 性能对比(百万次调用基准)

| 方法 | 耗时 (ms) | 特点 ||-------------------------|-----------|--------------------------|| `time.time()` | 120 | 最快,但只返回时间戳 || `datetime.now()` | 450 | 功能全面,推荐日常使用 || `datetime.utcnow()` | 460 | 获取UTC时间 || `time.localtime()` | 520 | 返回结构化时间 || `time.strftime()` | 980 | 直接返回格式化字符串 |

### 使用建议:1. **常规使用**:`datetime.now()` + `strftime` 格式化2. **性能敏感**:`time.time()` 获取时间戳3. **Django项目**:`django.utils.timezone.now()`4. **需要时区**:`datetime.now(timezone.utc)`5. **日志记录**:直接使用 `time.strftime()` 获取格式化字符串

选择哪种方法取决于具体需求:- 需要完整日期时间对象 → `datetime.now()`- 需要时间戳或高性能 → `time.time()`- 需要时区信息 → `datetime.now(timezone.utc)`- 需要直接格式化输出 → `time.strftime()`

💡 关键要点

在 Python 中获取当前日期和时间有多种方法,以下是最常用的几种方式(按推荐顺序排列): ### 1. 使用 `datetime` 模块(最常用、最全面)```python

更多疯狂内容

苹果xsmax突然黑屏了怎么回事?苹果XS Max黑屏原因及解决方法是什么?
正在阅读:美图秀秀怎么制作透明图 美图秀秀制作透明图教程美图秀秀怎么制作透明图 美图秀秀制作透明图教程
【攻略】附魔介紹 @暗影格鬥 2 哈啦板