python中的日期时间格式转换

时间:2015-03-03 09:48:41

标签: python date python-2.6

我有一个包含格式

时间戳的字符串
  

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

。 这里的时间是24小时格式。

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

我正在使用python 2.6版。

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

4 个答案:

答案 0 :(得分: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

输出 2014年12月20日下午03:25:05

答案 1 :(得分:1)

使用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'

答案 2 :(得分: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'

答案 3 :(得分:0)

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

我非常感谢&敬佩(因为我几乎无法阅读手册页: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

如果你喜欢一个衬垫,请查看<{1}}以下

f()