如何在python中使字符串中的字符串可选

时间:2014-08-06 21:09:37

标签: python regex datetime cgi

我写的是写一些东西,其中有两个变量以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."

2 个答案:

答案 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")

将处理这两种情况。