【问题标题】:converting date from string to a required DateTime format in python在python中将日期从字符串转换为所需的日期时间格式
【发布时间】:2018-09-12 00:18:32
【问题描述】:

我有一个字符串格式的日期。我想将其转换为所需的日期时间格式(mm-dd-yyyy)。这是我正在使用的代码:

from datetime import datetime
demoDate='03-25-17'
requiredDate = datetime.strptime(demoDate, '%m-%d-%y').strftime('%m-%d-%Y')
print(requiredDate)
print(type(requiredDate))

我得到的输出是:

03-25-2017
<class 'str'>

我可以知道我是否可以获得所需的输出格式,但日期时间格式不是字符串?

【问题讨论】:

  • 我的意思是我希望我的日期以 DateTime 格式存储为 mm-dd-yyyy

标签: python string python-3.x datetime


【解决方案1】:

只要摆脱对strftime的呼叫。

from datetime import datetime
demoDate='03-25-17'
requiredDate = datetime.strptime(demoDate, '%m-%d-%y') # Note: this line changed, no strftime anymore
print(requiredDate)
print(type(requiredDate))

输出

2017-03-25 00:00:00
<class 'datetime.datetime'>

根据需要。

您也可以使用您最初拥有的代码将其输出为 mm-dd-yyyy 格式的字符串:

requiredDate = datetime.strptime(demoDate, '%m-%d-%y').strftime('%m-%d-%Y')

我认为你混淆了 representation 或 view 以及基于你的 cmets 的实际 抽象。

datetime 对象本身是一个抽象。它代表一个日期。将其视为03-25-17 或2017-03-25 都没有关系。这是同一天。你如何将它打成字符串也无关紧要(假设你正在使用类上的方法来保持 datetime 对象的语义)。 抽象日期本身保持不变。

另一方面,您可以将datetime 打成一个字符串,然后使用datetime 类支持的任何格式在控制台中可视化该字符串。这包括 mm-dd-yyyy 或 dd-mm-yyyy。这些是相同日期的不同表示。换句话说,我们可以可视化这个日期抽象的许多表示或视图,但我们只讨论一个抽象日期在这里。

因此,您不能要求有一个日期时间并确保它始终表示为 mm-dd-yyyy。这没有任何意义。

【讨论】:

  • 请把它放在问题中。我会尽快编辑。
  • @Slickmind 我不认为你可以做你所要求的。您将日期的抽象与该日期的视图混淆了。
【解决方案2】:

代替:

requiredDate = datetime.strptime(demoDate, '%m-%d-%y').strftime('%m-%d-%Y')

你不需要strftime:

requiredDate = datetime.strptime(demoDate, '%m-%d-%y')

那么这将是一个很好的datetime对象

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 2014-08-10
    • 2018-10-02
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多