MONTHS = ['January', 'February', 'Match', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December']
def date_convert(s):
y = s[:4]
m = int(s[5:-3])
d = s[8:]
if m < 10:
nm = int(m[1:])
month_name = MONTHS[nm - 1]
else:
month_name = MONTHS[m - 1]
result= ??????
return result
s = '2000/06/24'
r = date_convert(s)
print(r)
我正在研究期末考试(python 3.0 +),我一整天都在做练习。我突然不知道如何将month_name a,y组合在一起作为字符串使用&#39;结果&#39; (结果= ???)。然后将其返回主程序。 这是我需要的结果:将2000/06/24转换为2000年6月24日。我的大脑现在不工作了,请有人帮助我。非常感谢。我不能使用任何bulit-in功能。请帮我把任何东西放在一起作为一个字符串。再次感谢。
答案 0 :(得分:0)
试试这个:
from datetime import datetime
d = "2000/06/24"
date_obj = datetime.strptime(d, "%Y/%m/%d")
formatted_date = datetime.strftime(date_obj, "%B %d %Y")
print(formatted_date)
因此,您可以将d作为变量传递给您正在使用的函数中的参数。
strptime(): is used to convert the string of the date to a date object.
strftime(): is used to convert the date object to string.
答案 1 :(得分:0)
通常您不会手动解析/重新格式化/转换Python中的日期。
有许多美丽的功能甚至模块。
问题是日期转换过程看起来似乎很简单
很复杂且容易出错。这就是为什么它不是每次都重新实现,而是尽可能多地实现
在Python核心模块中(首先在datetime
中)。
使用strptime
解析日期,使用strftime
格式化日期:
>>> import datetime
>>> s = datetime.datetime.strptime("2000/06/24", "%Y/%m/%d")
>>> print s.strftime('%B %d %Y')
这两个功能都支持特殊的格式化字符,例如%Y
和%m
:
%Y Year with century as a decimal number.
%m Month as a decimal number [01,12].
%d Day of the month as a decimal number [01,31].
%B Locale’s full month name.
您可以在此处找到更多信息:
此外,请检查这个问题,它非常接近你的问题 获得更多答案:
如果是运动, 你必须实现转换功能 在你自己,这也没关系。您的实施几乎是正确的 但是你错过了一些观点:
def date_convert(s):
"Manual date conversion"
y = s[:4]
m = int(s[5:-3])
d = s[8:]
month_name = MONTHS[m - 1]
return "%s %s, %s" % (month_name, d, y)
您的功能中不需要if
。
而且您不需要两次int转换,只需要第一次转换。
你可以更简单地写一遍:
def date_convert(s):
"Manual date conversion"
return "%s %s, %s" % (MONTHS[int(s[5:-3])-1], s[8:], s[:4])
答案 2 :(得分:0)
MONTHS = ['January', 'February', 'Match', 'April', 'May', 'June',
'July', 'August', 'September', 'October', 'November', 'December']
def date_convert(s):
y = s[:4]
m = int(s[5:-3])
d = s[8:]
month_name = MONTHS[m-1]
result= month_name + ' ' + d + ' ' + y
return result
s = '2000/06/24'
r = date_convert(s)
print r
我在python 2中做过更改打印功能