【发布时间】:2018-05-18 10:11:32
【问题描述】:
我想创建一个可以包含None 值的datetime 对象的字符串表示形式。到目前为止,我想出了一个解决方案,但我正在寻找一种更好/更清洁的方法。
假设我有以下两个变量:
import datetime as dt
a = None
b = dt.datetime(2017, 11, 30)
def str_format(str):
return '{:%Y-%m-%d}'.format(str)
以下将返回格式化字符串:
str_format(b)
'2017-11-30'
但以下会返回错误:
str_format(a)
TypeError: unsupported format string passed to NoneType.__format__
到目前为止,我可以找到以下解决方案:
def str_format(str):
if isinstance(str, type(None)) is False:
return '{:%Y-%m-%d}'.format(str)
else:
return '{}'.format(str)
str_format(a)
'None'
str_format(b)
'2017-11-30'
但是,我正在寻找一种更有效/更简洁的方法来编写函数。
【问题讨论】:
-
我认为最好测试一下你的参数是否是日期时间类型。
isinstance(b, dt.datetime),你确定你的格式正确
标签: python string date datetime format