如何在Python字符串格式化中调用Unix时间戳转换函数?
在字符串格式化中调用Unix时间戳转换函数的方法
嘿,我来帮你搞定这个问题!其实在字符串格式化里直接调用自定义函数很简单,我结合Python最常用的几种格式化方式给你演示,先给个convert_unix_timestamp的示例实现方便参考:
import datetime def convert_unix_timestamp(timestamp): # 默认处理秒级Unix时间戳,要是是毫秒级就改成 timestamp / 1000 return datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S')
1. 用f-string(Python 3.6+最推荐)
f-string支持在占位符{}里直接执行表达式,包括函数调用,写法最直观:
# 假设你加载的JSON数据是这样的 json_data = {"event_time": 1690000000} # 直接在f-string里调用函数 formatted_output = f"事件发生时间:{convert_unix_timestamp(json_data['event_time'])}" print(formatted_output) # 输出示例:事件发生时间:2023-07-22 15:06:40
2. 用str.format()方法
如果你的Python版本稍低,或者习惯用format语法,也可以把函数调用的结果作为参数传入:
# 方式1:直接传递函数调用结果 formatted_output = "事件发生时间:{}".format(convert_unix_timestamp(json_data['event_time'])) # 方式2:用关键字参数,可读性更强 formatted_output = "事件发生时间:{formatted_time}".format( formatted_time=convert_unix_timestamp(json_data['event_time']) )
3. 用旧式的%格式化
要是你还在维护老代码,用%格式化也能实现:
formatted_output = "事件发生时间:%s" % convert_unix_timestamp(json_data['event_time'])
小提示
- 如果你的JSON里的时间戳是毫秒级(比如1690000000000),记得在函数里先除以1000:
datetime.datetime.fromtimestamp(timestamp / 1000) - 可以给函数加个异常处理,避免无效时间戳导致报错:
def convert_unix_timestamp(timestamp): try: return datetime.datetime.fromtimestamp(timestamp).strftime('%Y-%m-%d %H:%M:%S') except (ValueError, TypeError): return "无效时间戳"
内容的提问来源于stack exchange,提问作者DenCowboy
相关产品推荐
相关产品推荐

