因此,这个问题是处理python中此类输入的最佳方式。这是输入日期$cfg['Servers'][$i]['host'] = '192.168.0.10';
的示例。毫秒部分可能是输入的一部分,也可能不是输入的一部分。
我目前正在使用此代码将其转换为日期时间
2018-12-31 23:59:59.999999
但是这种情况下的问题是,如果输入字符串不包含毫秒部分,即input_ts = datetime.datetime.strptime(input_str, '%Y-%m-%dT%H:%M:%S.%f')
在Java中,我本可以以两种方式解决此问题。 (它是一种伪解释,没有考虑小边界检查)
(首选方法)。检查输入字符串的长度。如果小于 19 ,则表示缺少毫秒。附加2018-12-31 23:59:59
。
(不推荐)。让主代码解析该字符串(如果它引发异常),然后以新的时间格式(即.000000
第三种方法可能只是去除毫秒。
我不确定python是否内置任何东西来处理这种情况。有什么建议吗?
答案 0 :(得分:1)
您可以使用python-dateutil库,该库足够聪明,可以解析大多数基本日期格式。
import dateutil.parser
dateutil.parser.parse('2018-12-31 23:59:59.999999')
dateutil.parser.parse('2018-12-31 23:59:59')
如果您不想安装任何外部库,则可以按照建议的in this answer遍历不同格式的列表。
答案 1 :(得分:-1)
from datetime import datetime # import datetime class from datetime package
dt = datetime.now() # get current time
dt1 = dt1.strftime('%Y-%m-%d %H:%M:%S') # converting time to string
dt3 = dt2.strptime('2018/5/20','%Y/%m/%d') # converting a string to specified time