首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python上修改日期

在Python上修改日期
EN

Stack Overflow用户
提问于 2015-09-16 00:25:16
回答 3查看 119关注 0票数 0

我正在尝试为我正在选修的课程解决这个样本练习,问题是:

代码语言:javascript
复制
Define function reformat which replaces all occurrences of "-" with "/" in a string. Once defined, your function should work like this:

new = reformat("29-04-1974")
print(new)
"29/04/1974"

我对python不是很熟悉,但我想出了以下几点:

代码语言:javascript
复制
date = "29", "04", "1974"
new = reformat("29-04-1974")
def reformat(x):
    x = ("%s" "%s" "%s" % date).split("-") 
    return x

p = "/".join(reformat("%s" "%s" "%s" % date))

print (p)

打印结果: 29041974

我做错了什么?

提前感谢

EN

回答 3

Stack Overflow用户

发布于 2015-09-16 00:27:52

你的代码是错误的,而且效率很高,为什么你不使用str.replace?:

代码语言:javascript
复制
>>> "29-04-1974".replace('-','/')
'29/04/1974'
票数 3
EN

Stack Overflow用户

发布于 2015-09-16 00:35:34

或者,您可以使用datetime函数:

代码语言:javascript
复制
from datetime import datetime

dt = datetime.strptime('29-04-1974', '%d-%m-%Y')  # parse the string into 
                                                  # a datetime object
print(dt.strftime('%d/%m/%Y'))                    # format the datetime

如果您改变主意如何显示日期,这将为您提供很大的灵活性。

你的函数出了什么问题:

  • 您没有使用(读取)要作为参数传递的x。该函数始终使用您预先定义的date。在没有拆分的情况下创建一个字符串,但是希望在每个-.
  • "%s" "%s" "%s" % date上拆分都会转换为"%s%s%s" % date,在本例中就是字符串29041974
票数 1
EN

Stack Overflow用户

发布于 2015-09-16 00:40:23

出什么问题了:

您的重新格式化函数从不使用x作为输入。

另外,replace是更简单、更正确的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32591088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档