领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

Python实现系统时间格式化常用方法

nixiaole 2025-03-29 20:25:59 知识剖析 18 ℃


任务要求

输出当前系统时间的完整格式化字符串。

任务分析

核心问题:如何将时间戳或时间对象转换为符合人类阅读习惯的字符串。

  • time模块:基于C语言时间库,通过strftime实现格式转换,需搭配localtime获取结构化时间。
  • datetime模块:面向对象设计,直接调用datetime.now().strftime()更简洁。
  • f-string:Python 3.6+特性,结合datetime对象实现内联表达式格式化。

任务实现

方法一:time模块 + strftime

import time
# 获取当前时间戳
timestamp = time.time()
# 转换为本地时间结构体
local_time = time.localtime(timestamp)
# 格式化为指定字符串
formatted_time = time.strftime("%Y-%m-%d %H:%M:%S", local_time)
print(f"当前系统时间: {formatted_time}")

说明:

1.time.time() 获取从1970-01-01 00:00:00 UTC至今的秒数(浮点型)

2.time.localtime() 将时间戳转换为包含年、月、日等字段的结构体struct_time

3.strftime("%Y-%m-%d %H:%M:%S") 中:

  • %Y:四位数年份(如2025)
  • %m:两位数月份(01-12)
  • %d:两位数日期(01-31)
  • %H:24小时制小时数(00-23)
  • %M:分钟数(00-59)
  • %S:秒数(00-59)

方法二:datetime模块标准方案

from datetime import datetime
# 直接获取当前时间对象
now = datetime.now()
# 调用strftime方法格式化
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"当前系统时间: {formatted_time}")

说明:

  • datetime.now() 直接生成包含本地时间的datetime对象,无需手动转换时区
  • strftime() 方法支持与time模块相同的格式化符号,但操作对象为datetime实例
  • 优势:代码更简洁,适合需要频繁操作日期计算的场景

方法三:f-string快捷格式化

from datetime import datetime
now = datetime.now()
# 使用f-string内联表达式
formatted_time = f"{now:%Y-%m-%d %H:%M:%S}"
print(f"当前系统时间: {formatted_time}")

说明:

  • f-string通过在字符串前加f标识,允许在花括号{}内直接插入表达式
  • f"{now:%Y...}" 语法将datetime对象与格式符号结合,实现单行极简格式化
  • 注意:仅支持Python 3.6+版本

运行结果

当前系统时间: 2025-02-27 17:49:25

进程已结束,退出代码为 0

代码说明

格式化符号扩展:

  • %a:缩写星期名,例如:Thu
  • %b:缩写月份名,例如:Feb
  • %c:本地完整日期时间,例如:Thu Feb 27 17:26:33 2025
  • %j:年内的第几天(001-366),例如:058
  • %p:上午/下午标识,例如:AM/PM

Tags:

最近发表
标签列表