【问题标题】:Date time format conversion in python [duplicate]python中的日期时间格式转换[重复]
【发布时间】:2023-03-23 15:20:01
【问题描述】:

我有一个包含时间戳格式的字符串

(DD/MM/YYYY HH:MM:SS AM/PM),例如“12/20/2014 15:25:05 pm”

。 这里的时间是 24 小时制的。

我需要转换为相同的格式,但时间为 12 小时格式。

我使用的是 python 2.6 版。

我已经浏览了 python 的时间库,但无法提出任何解决方案。

【问题讨论】:

标签: python date python-2.6


【解决方案1】:

查看直播ideOne使用Python datetime

>>> from datetime import datetime as dt
>>> date_str='12/20/2014 15:25:05 pm'

>>> date_obj = dt.strptime(date_str, '%m/%d/%Y %H:%M:%S %p')

>>> dt.strftime(date_obj, '%m/%d/%Y %I:%M:%S %p')
'12/20/2014 03:25:05 PM'

【讨论】:

  • 你好@J.F.Sebastian 谢谢你的通知,我错过了添加from datetime 为什么不工作,现在工作正常。
【解决方案2】:

诀窍是将您的输入日期字符串转换为 Python 日期时间对象,然后将其转换回日期字符串

import datetime

#Input Date String
t = "12/20/2014 15:25:05 pm"

#Return a datetime corresponding to date string
dateTimeObject = datetime.datetime.strptime(t, '%m/%d/%Y %H:%M:%S %p')
print dateTimeObject

输出: 2014-12-20 15:25:05

#Return a string representing the date
dateTimeString = datetime.datetime.strftime(dateTimeObject, '%m/%d/%Y %I:%M:%S %p')
print dateTimeString

输出: 12/20/2014 03:25:05 PM

【讨论】:

    【解决方案3】:

    使用strptime 创建日期时间对象后,您调用strftime 并将所需格式作为字符串传递,请参阅docs

    In [162]:
    
    t = "12/20/2014 15:25:05 pm"
    dt.datetime.strftime(dt.datetime.strptime(t, '%m/%d/%Y %H:%M:%S %p'), '%m/%d/%Y %I:%M:%S %p')
    Out[162]:
    '12/20/2014 03:25:05 PM'
    

    【讨论】:

      【解决方案4】:

      最短且最简单的解决方案 --

      我真的很感激和钦佩(因为我几乎没有阅读手册页 :P)你阅读时间文档,但是当简单的代码可以完成工作时为什么要使用“惊人”和“神秘”的代码

      只需将小时部分提取为 int,如果大于 12,则将其替换为 hrs-12

      t = "12/20/2014 15:25:05 pm"
      
      hrs = int( t.split()[1][:2] )
      
      if hrs > 12:
          t = t.replace( str(hrs), str(hrs-12) )
      

      输出

      查看解释和实时输出here

      使用 Lambda

      如果您喜欢一种衬垫,请在下方查看f()

      t = "12/20/2014 15:25:05 pm"
      
      f = lambda tym: tym.replace(str(int(tym.split()[1][:2])), str(int(tym.split()[1][:2])-12)) if int(tym.split()[1][:2]) > 12 else tym
      
      print(f(t))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-24
        • 1970-01-01
        • 2012-03-27
        • 1970-01-01
        • 1970-01-01
        • 2011-09-11
        • 2021-02-18
        • 2013-08-18
        相关资源
        最近更新 更多