如何在 python 中定义识别我的日期格式的函数
How to define a function that recognizes my date format in python
我想创建一个带有条件的函数或循环:如果此字符串遵循此格式是日期,则 return 为真,否则 return 为假。
我已经用这段代码试过了,但是当我 运行 is_date(string) 它 returns False,它应该 return True。
string = '20090903'
def is_date(string):
if string.format == "%YYYY%mm%dd":
return True
else:
return False
is_date(string)
尝试检查长度是否为 8 且字符串是否仅包含数字:
string = '20090903'
def is_date(string):
return len(string) == 8 and string.isdigit()
print(is_date(string))
更精确的解决方案:
string = '20090903'
from dateutil.parser import parse
def is_date(string):
try:
parse(string)
return True
except:
return False
print(is_date(string))
此解决方案将在 00000000
上给出 False
,但不是第一个解决方案:
两个输出:
True
自从您标记 pandas
string = '20090903'
from pandas.core.tools.datetimes import _guess_datetime_format_for_array
def is_date(string):
return _guess_datetime_format_for_array(np.array([string ])) == '%Y%m%d'
is_date(string)
更多测试
is_date('20190101')
Out[77]: True
is_date('00000000')
Out[78]: False
你不需要 pandas 来做:)
from datetime import datetime
def test(your_text):
try:
datetime.strptime(your_text, '%Y%m%d')
print('valid format')
return True
except ValueError:
return False
if __name__=='__main__':
test('20090903')
这是一个函数,只有当字符串采用特定格式时才会 return 为真:
我想创建一个带有条件的函数或循环:如果此字符串遵循此格式是日期,则 return 为真,否则 return 为假。
我已经用这段代码试过了,但是当我 运行 is_date(string) 它 returns False,它应该 return True。
string = '20090903'
def is_date(string):
if string.format == "%YYYY%mm%dd":
return True
else:
return False
is_date(string)
尝试检查长度是否为 8 且字符串是否仅包含数字:
string = '20090903'
def is_date(string):
return len(string) == 8 and string.isdigit()
print(is_date(string))
更精确的解决方案:
string = '20090903'
from dateutil.parser import parse
def is_date(string):
try:
parse(string)
return True
except:
return False
print(is_date(string))
此解决方案将在 00000000
上给出 False
,但不是第一个解决方案:
两个输出:
True
自从您标记 pandas
string = '20090903'
from pandas.core.tools.datetimes import _guess_datetime_format_for_array
def is_date(string):
return _guess_datetime_format_for_array(np.array([string ])) == '%Y%m%d'
is_date(string)
更多测试
is_date('20190101')
Out[77]: True
is_date('00000000')
Out[78]: False
你不需要 pandas 来做:)
from datetime import datetime
def test(your_text):
try:
datetime.strptime(your_text, '%Y%m%d')
print('valid format')
return True
except ValueError:
return False
if __name__=='__main__':
test('20090903')
这是一个函数,只有当字符串采用特定格式时才会 return 为真: