【问题标题】:How to remove T from time format %Y-%m-%dT%H:%M:%S?如何从时间格式 %Y-%m-%dT%H:%M:%S 中删除 T?
【发布时间】:2015-03-04 08:09:28
【问题描述】:

如何在python中去除时间格式%Y-%m-%dT%H:%M:%S中的T?

我在我的html中使用它

<b>Start:{{ start.date_start  }}<br/>

【问题讨论】:

  • 这是 Jinja2 还是 Django 模板?

标签: python python-2.7 datetime jinja2


【解决方案1】:

手动格式化日期时间,不要依赖默认的str() 格式化。例如,您可以使用datetime.datetime.isoformat(),传入一个空格作为分隔符:

<b>Start:{{ start.date_start.isoformat(' ')  }}<br/>

或者您可以使用datetime.datetime.strftime() 更精细地控制格式:

<b>Start:{{ start.date_start.strftime('%Y-%m-%d %H:%M:%S')  }}<br/>

【讨论】:

  • 您好,非常感谢您的回答。这是富有成效的,但我尝试了模板标签功能。比如:@register.filter def isotime(datestring): datestring = str(datestring) return datestring.replace("T"," ")
  • 那么为什么不使用dateobj.isoformat(' ') 而不是str(dateobj).repace()
  • @GentleJoseph 注意:str(datetime) 确实包含Tdatetime.__str__记录返回d.isoformat(' '),也就是说,如果结果中有T,这将是一个错误。那么问题来了:start.date_start 有什么类型?它是一个字符串(然后.replace() 是可以容忍的,尽管strptime().strftime()(重新格式化)更好)还是一些自定义日期类? (然后使用.strftime()等显式格式化方法)。
  • @J.F.Sebastian:说得好,这意味着start.date_start 必须是一个字符串已经
【解决方案2】:
@register.filter
def isotime(datestring):
    datestring = str(datestring)
    return datestring.replace("T"," ")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-15
    • 1970-01-01
    • 2020-04-03
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多