GVKun编程网logo

如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象?[复制](将日期字符串转换为时间戳)

8

对于如何将ISO8601日期时间字符串转换为Python日期时间对象?[复制]感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解将日期字符串转换为时间戳,并且为您提供关于python-如何在不

对于如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象?[复制]感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解将日期字符串转换为时间戳,并且为您提供关于python - 如何在不导入日期时间的情况下将字符串日期时间转换为日期时间?、Python - 将字符串转换为日期时间对象 示例输出、python 将字符串转换为带时区的日期时间时出错、Python-从日期时间字符串中删除时间的宝贵知识。

本文目录一览:

如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象?[复制](将日期字符串转换为时间戳)

如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象?[复制](将日期字符串转换为时间戳)

这个问题在这里已经有了答案

如何解析 ISO 8601 格式的日期? (28 个回答)

7年前关闭。

我得到一个格式为“2009-05-28T16:15:00”的日期时间字符串(我相信这是 ISO 8601)。一个 hackish
选项似乎是使用time.strptime元组的前六个元素解析字符串并将其传递给 datetime 构造函数,例如:

datetime.datetime(*time.strptime("2007-03-04T21:08:12", "%Y-%m-%dT%H:%M:%S")[:6])

我一直无法找到一种“更清洁”的方式来做到这一点。有吗?

答案1

小编典典

我更喜欢使用dateutil库进行时区处理和通常可靠的日期解析。如果你得到一个ISO8601字符串,比如:2010-05-08T23:41:54.000Z你会很开心用 strptime
解析它,特别是如果你事先不知道时区是否包括在内。pyiso8601我在使用过程中遇到了几个问题(检查他们的跟踪器),并且几年没有更新。相比之下,dateutil
一直很活跃并为我工作:

from dateutil import parseryourdate = parser.parse(datestring)

python - 如何在不导入日期时间的情况下将字符串日期时间转换为日期时间?

python - 如何在不导入日期时间的情况下将字符串日期时间转换为日期时间?

import time
 my_time = time.strptime('Jun 1 2005  1:33PM','%b %d %Y %I:%M%p')
time.struct_time(tm_year=2005,tm_mon=6,tm_mday=1,tm_hour=13,tm_min=33,tm_sec=0,tm_wday=2,tm_yday=152,tm_isdst=-1)

timestamp = time.mktime(my_time)
# convert time object to datetime
from datetime import datetime
my_datetime = datetime.fromtimestamp(timestamp)
# convert time object to date
from datetime import date
my_date = date.fromtimestamp(timestamp)

不导入日期时间就无法转换为日期时间

Python - 将字符串转换为日期时间对象 示例输出

Python - 将字符串转换为日期时间对象 示例输出

  • y 应该是 Yy 表示 2 位数年份。

  • 您还应该注意 .%f 的毫秒数:


%Y-%m-%dT%H:%M:%S.%fZ
,

这种格式有效:

formater = "%Y-%m-%dT%H:%M:%S.%fZ"

输出:

2021-03-13 18:27:37.609180

python 将字符串转换为带时区的日期时间时出错

python 将字符串转换为带时区的日期时间时出错

如何解决python 将字符串转换为带时区的日期时间时出错?

代码:

pd.to_datetime(dataset[''startdate''],format="%Y-%m-%d %H:%M:%s%Z")

出现以下错误

ValueError: time data ''2020-02-25 14:56:05+01'' does not match format ''%Y-%m-%d %H:%M:%s%Z'' (match)

非常感谢帮助。

解决方法

您的格式末尾有一个 %Z(大写),根据 docs 时区名称(如 GMT、PSD ...)。您可能想要使用 %z(小写),它是 UTC 偏移量(如 ±HHMM[SS[.ffffff]])。但是不确定这是否有效 +01,您可能需要 +0100

,

由于夏令时,时间序列数据也包含 +01 和 +02。这导致了错误。也应该使用 %z

Python-从日期时间字符串中删除时间

Python-从日期时间字符串中删除时间

我有一个日期字符串,想要将其转换为日期类型:

我尝试将datetime.datetime.strptime与所需的格式一起使用,但它会返回转换时间。

    when = alldates[int(daypos[0])]    print when, type(when)    then = datetime.datetime.strptime(when, ''%Y-%m-%d'')    print then, type(then)

这是输出返回的内容:

   2013-05-07 <type ''str''>   2013-05-07 00:00:00 <type ''datetime.datetime''>

我需要删除时间:00:00:00。

答案1

小编典典
print then.date()

您想要的是datetime.date对象。您拥有的是一个datetime.datetime对象。您可以按照以上说明进行打印时更改对象,或者在创建对象时执行以下操作:

then = datetime.datetime.strptime(when, ''%Y-%m-%d'').date()

关于如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象?[复制]将日期字符串转换为时间戳的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于python - 如何在不导入日期时间的情况下将字符串日期时间转换为日期时间?、Python - 将字符串转换为日期时间对象 示例输出、python 将字符串转换为带时区的日期时间时出错、Python-从日期时间字符串中删除时间的相关知识,请在本站寻找。

本文标签: