python中的日期时间strptime

问题描述 投票:9回答:5

我试过以下代码:

import datetime
d = datetime.datetime.strptime("01/27/2012", "%m/%d/%Y")
print(d)

输出是:

2012-01-27 00:00:00

我正在使用Linux Mint:

test@testsrv ~/pythonvault $ date
Fri Jun 16 21:40:57 EEST 2017

那么,问题是为什么python代码的输出在"%Y/%m/%d" ( 2012-01-27 )而不是"%m/%d/%Y"格式中返回一个日期?

请注意我使用的是python 2.7

任何帮助,将不胜感激。

python datetime
5个回答
17
投票

您需要确保相应地提供输入

datetime.strptime(date_string,date_string_format).strftime(convert_to_date_string_format)

要以指定格式打印日期,您需要提供如下格式。

import datetime
d =datetime.datetime.strptime("01/27/2012","%m/%d/%Y").strftime('%m/%d/%Y')
print d

输出:

01/27/2012

>>Demo<<


3
投票

datetime.strptime(date_string, format)函数返回对应于datetimedate_string对象,根据format解析。当您打印datetime对象时,它被格式化为ISO 8601格式的字符串,YYYY-MM-DDTHH:MM:SS

参考文献:


1
投票

正如评论中明确指出的那样,您使用指定的格式解析为datetime对象。

strptime(...)是String Parse Time。您已指定了如何解释字符串以初始化Datetime对象的格式,但该格式仅用于初始化。默认情况下,当您打印该datetime对象时,您将获得str(DatetimeObjectInstance)的表示(在您的情况下,str(d))。

如果你想要一个不同的格式,你应该使用字符串格式时间(strftime(...)


0
投票
import datetime

str_time= "2018-06-03 08:00:00"
date_date = datetime.datetime.strptime(str_time, "%Y-%m-%d %H:%M:%S")
print date_date

0
投票

datetime.strp[arse]time()datetime.strf[ormat]time()之间的区别。

第一个,strptime()允许您从字符串源创建日期对象,前提是您可以告诉它期望的格式:

strDate = "11-Apr-2019_09:15:42"
dateObj = datetime.strptime(strDate, "%d-%b-%Y_%H:%M%S")

print(dateObj)  # shows: 2019-04-11 09:15:42

第二个,strftime()允许您以您选择的格式将日期对象导出为字符串:

dateObj = datetime(2019, 4, 11, 9, 19, 25)
strDate = dateObj.strftime("%m/%d/%y %H:%M:%S")

print(strDate)  # shows: 04/11/19 09:19:25

您所看到的只是datetime对象的默认字符串格式,因为您没有明确告诉它使用什么格式。

查看qazxsw poi以获取可用的所有不同字符串格式选项的列表。

© www.soinside.com 2019 - 2024. All rights reserved.