当前位置: 首页 > 面试题库 >

如何从Python日期时间对象中删除未转换的数据

靳高明
2023-03-14
问题内容

我有一个大多数时间正确的数据库,但是有一些像这样坏了: Sat Dec 22 12:34:08 PST 20102015

没有无效的年份,这对我有用:

end_date = soup('tr')[4].contents[1].renderContents()
end_date = time.strptime(end_date,"%a %b %d %H:%M:%S %Z %Y")
end_date = datetime.fromtimestamp(time.mktime(end_date))

但是,一旦我用无效的年份击中一个对象,我就会得到ValueError: unconverted data remains: 2,这很好,但是我不确定如何最好地去除不良字符。它们的范围是2到6 unconverted characters

有指针吗?我只想切片,end_date但我希望有一个日期时间安全的策略。


问题答案:

是的,我会砍掉多余的数字。假设它们总是附加在日期字符串上,则可以这样进行:

end_date = end_date.split(" ")
end_date[-1] = end_date[-1][:4]
end_date = " ".join(end_date)

我打算尝试从异常中获取多余的位数,但是在我安装的Python版本(2.6.6和3.1.2)上,该信息实际上并不存在。它只是说数据不匹配格式。当然,您可以一次只继续舍弃一位数字,然后重新解析,直到没有异常。

您还可以编写一个仅与有效日期匹配的正则表达式,包括年份中正确的数字,但这似乎有点过头。



 类似资料:
  • 问题内容: 有没有一种简单的方法可以从pytz日期时间对象中删除时区? 例如,在此示例中进行重构: 问题答案: 要从日期时间对象中删除时区(tzinfo): 如果您使用的是诸如arrow的库,则可以通过简单地将arrow对象转换为datetime对象,然后执行与上述示例相同的操作来删除时区。 你为什么要这样做?一个例子是mysql不支持DATETIME类型的时区。因此,使用ORM之类的sqlalc

  • 问题内容: 我有一个JSON对象的字符串表示形式。 当我使用此对象调用json.loads时; 我懂了 这里没有错。但是,我想知道是否有一种方法可以将带有json.loads的上述对象转换为如下形式: 不久,我们能够在调用json.loads时将datetime字符串转换为实际的datetime.datetime对象吗? 问题答案: 到目前为止我的解决方案: 有关使用object_hook的更多参

  • 问题内容: 我正在获取格式为“ 2009-05-28T16:15:00”的日期时间字符串(我相信这是ISO 8601)。一种可能的选择似乎是使用time.strptime元组的前六个元素并将其传递到datetime构造函数中来解析字符串,例如: 我还没有找到一种“清洁”的方法。有一个吗? 问题答案: 我更喜欢使用dateutil库进行时区处理和一般的可靠日期解析。如果要获得类似ISO 8601的字

  • 问题内容: 我有一个日期字符串,想要将其转换为日期类型: 我尝试将datetime.datetime.strptime与所需的格式一起使用,但它会返回转换时间。 这是输出返回的内容: 我需要删除时间:00:00:00。 问题答案: 您想要的是datetime.date对象。您拥有的是一个datetime.datetime对象。您可以按照以上说明进行打印时更改对象,或者在创建对象时执行以下操作:

  • 问题内容: 我正在python中创建一个模块,在其中我以整数格式接收日期,例如,它表示2012年2月13日。现在,我想将此整数格式的日期转换为python date对象。 另外,是否有任何方法可以减去/加这样的整数格式日期的天数以接收相同格式的日期值?像从中减去30天并得到答案? 问题答案: 我建议采用以下简单的转换方法: 要添加/减去任意天数(秒也是如此),您可以执行以下操作: 并转换回使用:

  • 问题内容: 场景: 我有一个从Excel工作表中检索到具有多个列的数据框。其中一些列是日期:一些仅包含日期(yyyy:mm:dd),一些具有日期和时间戳(yyyy:mm:dd 00.00.000000)。 问题: 当日期不是数据框的索引时,如何从日期中删除时间戳? 我已经尝试了什么: 在SO的其他文章中使用pandas中的日期- 在datetime中删除看不见的字符并转换为字符串以及如何剥离pan