You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python strftime代码实现秒后10位纳秒级时间输出

解决方案

首先明确两个关键点:

  • Python 标准库datetime.strftime内置的%f占位符仅支持输出6位微秒级小数秒,无法直接生成10位长度的纳秒级小数秒,需要手动拼接对应部分。
  • 你给出的目标格式用两位数字表示月份,不需要原代码里%b对应的月份缩写,同时要去掉原格式中包裹时间的括号。

直接替换原有代码为以下内容即可满足要求(适用于Python 3.7及以上版本,也是目前绝大多数生产环境的通用版本):

from datetime import datetime

now = datetime.now()
return f"{now.strftime('%d-%m-%Y %H:%M:%S')}.{now.nanosecond:0<010d}"

代码逻辑说明

  • %d-%m-%Y %H:%M:%S 对应输出目标格式的基础时间部分,例如14-07-2002 10:40:20,其中%m是两位数字月份的占位符。
  • now.nanosecond 会获取当前时间在当前秒内的纳秒计数值,取值范围为0到999999999。
  • :0<010d 是格式化规则:将纳秒值转为字符串后固定占10位长度,不足10位时在右侧补0,刚好满足小数点后保留10位数字的要求。

如果你使用的Python版本低于3.7(无nanosecond属性),可以用以下兼容版本实现:

import time
from datetime import datetime

total_ns = time.time_ns()
sec_part = total_ns // 10**9
# 计算秒后10位小数部分
decimal_part = (total_ns % 10**9) * 10
return f"{datetime.fromtimestamp(sec_part).strftime('%d-%m-%Y %H:%M:%S')}.{decimal_part:010d}"

内容的提问来源于stack exchange,提问作者Amrmsmb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 15:36:24