python中的日期时间格式转换[重复]

Posted

技术标签:

【中文标题】python中的日期时间格式转换[重复]【英文标题】:Date time format conversion in python [duplicate] 【发布时间】:2015-05-03 21:58:44 【问题描述】:

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

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

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

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

我使用的是 python 2.6 版。

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

【问题讨论】:

相关:Convert 24 hours time to 12 hours in python 【参考方案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))

【讨论】:

以上是关于python中的日期时间格式转换[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python将不同格式的日期转换为一种格式[重复]

Python中的int到日期时间[重复]

如何从现有格式转换php中的日期格式[重复]

如何使用php将日期格式转换为日期时间格式[重复]

将mysql查询结果转换为不同的日期格式[重复]

将 PHP MMddyyyyHHmmss 中的日期格式化为 m-d-y [重复]