Python 将日期从yyyy/mm/dd格式转换为年月日格式 MONTHS=[“一月”、“二月”、“比赛”、“四月”、“五月”、“六月”, “七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”] def日期转换: y=s[:4] m=int(s[5:-3]) d=s[8:] 如果m

Python 将日期从yyyy/mm/dd格式转换为年月日格式 MONTHS=[“一月”、“二月”、“比赛”、“四月”、“五月”、“六月”, “七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”] def日期转换: y=s[:4] m=int(s[5:-3]) d=s[8:] 如果m,python,Python,我正在研究期末考试视图(Python3.0+),我整天都在练习。我突然不知道如何使用'result'将月份名称a,y组合成字符串 (结果=???)。然后将其返回到主程序。 这是我需要的结果:将2000/06/24转换为2000年6月24日。我的大脑现在不工作了,请有人帮帮我。非常感谢你。我不能在函数中使用任何bulit。请帮我把所有的东西串起来。再次感谢。试试这个: MONTHS = ['January', 'February', 'Match', 'April', 'May', 'June',

我正在研究期末考试视图(Python3.0+),我整天都在练习。我突然不知道如何使用'result'将月份名称a,y组合成字符串 (结果=???)。然后将其返回到主程序。 这是我需要的结果:将2000/06/24转换为2000年6月24日。我的大脑现在不工作了,请有人帮帮我。非常感谢你。我不能在函数中使用任何bulit。请帮我把所有的东西串起来。再次感谢。

试试这个:

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)
因此,您可以将d作为变量,并在所使用的函数中作为参数传递

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)

通常,您不会手动在Python中解析/重新格式化/转换日期。 有许多漂亮的功能,甚至模块。 问题是日期转换过程可能看起来很简单 复杂且容易出错。这就是为什么它不是每次都重新实现,而是在尽可能多的细节中实现 在Python核心模块中(首先在
datetime
中)

使用
strtime
解析日期,使用
strftime
格式化日期:

strptime(): is used to convert the string of the date to a date object.
strftime(): is used to convert the date object to string.
这两个函数都支持特殊的格式化字符,如
%Y
%m

>>> import datetime
>>> s = datetime.datetime.strptime("2000/06/24", "%Y/%m/%d")
>>> print s.strftime('%B %d %Y')
您可以在此处找到更多信息:

另外,请检查这个问题,它非常接近你的问题 有关其他答案:

如果这是一项运动, 您必须实现转换函数 你自己也可以。您的实现几乎是正确的 但你错过了一些要点:

%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.
函数中不需要
if
。 不需要两个整数转换,只需要第一个

您可以更简短地写下同样的内容:

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) 

我在Python2中更改了打印函数

阅读了
strtime
:你是说字符串格式?您已经有了月份名称、年份和日期。你所需要做的就是把它们组合成一个字符串。一个快速的Google指向教程,比如,
m
nm
都是字符串,所以
m<10
会失败。你需要先转换成整数,顺便说一句,这会使整个测试变得多余,因为如果你正确地转换成整数,你不需要截断
0
。有人能告诉我结果等于什么吗??现在加拿大已经快凌晨3点了。我想完成它,明天我要参加期末考试。非常感谢你。
def date_convert(s):
    "Manual date conversion"

    return "%s %s, %s" % (MONTHS[int(s[5:-3])-1], s[8:], s[:4]) 
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