我写的是写一些东西,其中有两个变量以datetime格式格式化。用户输入日期和时间的方式可以是字母" Z"在它的最后。例如:
"2008-01-01T00:00:01Z"
用户可能会也可能不会进入" Z"最后所以我想做一些让任何一种格式都可以接受的东西。这就是我所拥有的:
import datetime
b = datetime.datetime.strptime("2008-01-01T00:00:01Z", "%Y-%m-%dT%H:%M:%S")
c = datetime.datetime.strptime("2008-05-01T23:59:00Z", "%Y-%m-%dT%H:%M:%S")
def startTime(b):
try:
datetime.datetime.strptime(b, "%Y-%m-%dT%H:%M:%S")
except:
print "Error: start time is invalid."
def endTime(c):
try:
datetime.datetime.strptime(c, "%Y-%m-%dT%H:%M:%S")
except:
print "Error: end time is invalid."
答案 0 :(得分:1)
只要手动移除Z
,如果它就在那里呢?
user_in = raw_input("Please enter a date")
if user_in.endswith('Z'): user_in = user_in[:-1]
答案 1 :(得分:1)
rstrip
可以删除Z
(如果存在),并保留字符串,否则:
>>> "2008-05-01T23:59:00Z".rstrip("Z")
'2008-05-01T23:59:00'
>>> "2008-05-01T23:59:00".rstrip("Z")
'2008-05-01T23:59:00'
因此,如果您的字符串格式为s
,
date = datetime.datetime.strptime(s.rstrip("Z"), "%Y-%m-%dT%H:%M:%S")
将处理这两种情况。