【问题标题】:Python String formatting for datetime日期时间的 Python 字符串格式
【发布时间】:2015-02-26 11:33:28
【问题描述】:

我正在尝试解决一个问题:

在库代码中我有类似的东西:

return format % (value.year, value.month, value.day, value.hour, 
                 value.minute,value.second, value.microsecond)

其中 format 是带有格式的字符串:

format = "%04d-%02d-%02d %02d:%02d:%02d.%06d"

对于这种格式,可能的输出可以是:

2015-02-26 11:28:45.466000

我只能设置格式(字符串格式,也许是一些函数?),库代码是不可触碰的。有没有办法收到类似的东西:

2015-02-26 11:28:45

【问题讨论】:

  • string.split('.')[0]
  • 什么库?为什么不可触碰?你有更多的上下文可以提供吗?
  • 我很确定这只是日期时间
  • 可能我解释的不够充分。

标签: python string datetime formatting


【解决方案1】:

你有几个:

  • 将字符串拆分并使用,非常适合一次性使用
  • 解析返回的日期,如果您对其进行其他操作可能会更好

以下是这些选项的示例:


您可以使用函数split() 来执行此操作,并使用字符. 作为分隔符。
请注意,这假设您在字符串中只会得到一个点。

result = "2015-02-26 11:28:45.466000" 
final_str = result.split('.')[0]
print(final_str)
>>> 2015-02-26 11:28:45

使用datetime 解析日期:

import datetime

date_fmt = "%Y-%m-%d %H:%M:%S"
result_str = "2015-02-26 11:28:45.466000"

date = datetime.datetime.strptime(result_str, date_fmt+".%f")
date_str = date.strftime(date_fmt)

print(date_str)
>>> 2015-02-26 11:28:45

【讨论】:

    【解决方案2】:

    你可以使用split()函数

    def reduce(mydate):
         newformat = mydate.split('.')[0]
         return newformat
    
    print(reduce("2015-02-26 11:28:45.466000")) #2015-02-26 11:28:45
    

    Documentation

    【讨论】:

    • 在 python 中为 cmets 使用 # 会“更好”! :)
    猜你喜欢
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    • 2014-08-10
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多