关于#python#datetime格式化输出的问题

关于编写函数将输入的年月日时分秒进行datetime格式化输出,为什么下面这个代码显示错误呢


x=eval(input())
from datetime import datetime
def f():
    y=datetime(x)
    s=y.strftime('%Y-%m-%d %H:%M:S')
    return s
f()

结果为

202055121212
Traceback (most recent call last):
  File "E:\datetime.py", line 1, in 
    x=eval(input())
  File "", line 1
    202055121212
                    ^
SyntaxError: invalid character in identifier

该回答引用ChatGPT

这段代码中出现了SyntaxError,是因为在输入数据时使用了中文逗号“,”而不是英文逗号“,”。在Python中,逗号是用来分隔参数的,使用中文逗号会被解释器认为是无效的标识符,导致SyntaxError。

你可以将输入的年月日时分秒用英文逗号分隔,修改代码如下:


from datetime import datetime

def f(year, month, day, hour, minute, second):
    x = datetime(year, month, day, hour, minute, second)
    s = x.strftime('%Y-%m-%d %H:%M:%S')
    return s

input_str = input('请输入年月日时分秒,用英文逗号分隔:')
x = [int(s) for s in input_str.split(',')]
print(f(*x))

这样就可以接收用户输入,并将其转换为datetime格式并进行格式化输出了。注意,上面的代码中定义了一个函数f(),它接收6个参数,分别是年月日时分秒,通过这个函数可以将这6个参数转换为datetime格式。在main函数中,我们从输入中获取这6个参数,并将它们作为参数传递给f()函数进行格式化输出。

。。。我来捡漏了哈哈哈,有用请采纳
首先,第一次报错是中文逗号,楼上也回答了。
第二次是什么问题呢?

img


。。。不能这么引用包啊兄弟
直接import datetime就行了。
再往下,您想实现的是格式化输出,那么就得搞清楚普通字符串和datetime格式的区别以及如何转换。
按原本的y=datetime(x),x是元组turple,也会报错。。哈哈哈
所以我是这么写的,

x = eval(input())
print(x,type(x))
import datetime
def f():
    y = datetime.datetime.now()
    print(y,type(y))         ###datetime
    s = y.strftime('%Y-%m-%d %H:%M:%S')      #####datetime.strftime()   datetime转字符串
    s1=datetime.datetime.strptime(s,'%Y-%m-%d %H:%M:%S')     #### datetime.datetime.strptime() 字符串转datetime
    return s,s1
s,s1=f()
print(s,type(s))
print(s1,type(s1))

测试结果 :

img

希望对您有所帮助

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^