Python中有没有优雅或一行代码格式化时间为年月日的方法(月份小于10的情况)

datetime.now().strftime('%m月%d日%H点')

03月22日12点

月份前面会有 0


Python中有没有优雅或一行代码格式化时间为年月日的方法(月份小于10的情况)
7 回复

datetime.now().strftime(’%-m 月%d 日%H 点’)


# 最简洁的方式:使用datetime模块的strftime方法
from datetime import datetime

# 当前时间格式化
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d")
print(formatted_date)  # 输出示例:2024-01-05

# 对于任意datetime对象
date_obj = datetime(2024, 1, 5)  # 月份小于10的情况
result = date_obj.strftime("%Y-%m-%d")  # 自动补零:2024-01-05
print(result)

# 如果要从字符串解析并重新格式化
date_str = "2024-1-5"
parsed_date = datetime.strptime(date_str, "%Y-%m-%d")
formatted = parsed_date.strftime("%Y-%m-%d")  # 输出:2024-01-05

核心要点:

  • strftime("%Y-%m-%d") 中的 %m 会自动将月份格式化为两位数(1月变成01)
  • %Y 是四位年份,%d 是两位日期
  • 这是Python标准库的官方方法,无需安装第三方库

一句话建议: 直接用 strftime("%Y-%m-%d") 搞定月份补零问题。

“{dt.month}月{dt.day}日{dt.hour}点”.format(dt=datetime.datetime.now())

echo date(‘Y 年 m 月 d 日’, time()).’ 乱入 php 是世界上最好的语言’;

AttributeError: module ‘datetime’ has no attribute ‘now’

,用改导入为 from datetime import datetime
或者 datetime.datetime.now().strftime(’%-m 月%d 日%H 点’)试试

回到顶部