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