就只是调用格式化的函数不同看起来更简洁一些?
print(f"Tick! The time is: {datetime.now():%Y-%m-%d %H:%M:%S}")
print(f"Tick! The time is: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
1
kebyn 2023-07-24 17:48:56 +08:00 1
官方文档上面讲了的,f-string 格式化时间和 strftime() 是一样的,date.__format__ Same as date.strftime()
https://docs.python.org/3/library/datetime.html#datetime.date.__format__ |
2
qianye216 2023-07-24 17:49:07 +08:00
Python 的 f-string 和 strftime()都可以用来格式化时间,但两者有以下几点区别:
1. 语法不同: - f-string: f"{time:%Y-%m-%d %H:%M}" - strftime(): time.strftime("%Y-%m-%d %H:%M") 2. f-string 可以内嵌表达式,strftime()只接受格式字符串: - f"{time:{format}}" - strftime(format) 3. f-string 格式化发生在运行时,strftime 在调用时格式化 4. f-string 格式化只支持 datetime,strftime 可用于 datetime 和 time 5. f-string 从 Python 3.6 开始支持,strftime 存在于 2.x 和 3.x 6. f-string 使用{}包装表达式,strftime 使用%作为占位符 7. f-string 可以以内联的形式嵌入到字符串中,strftime 需要单独调用 8. f-string 由 Python 解析实现,strftime 由 C 语言实现,运行效率上会有差异 综上,主要区别在于语法方式,f-string 作为新特性更灵活,可内嵌表达式,但 strftime 可兼容 2.x,使用 C 实现,运行时效率较高。需要根据具体场景选择。 |