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 点’)试试

