对于如何将ISO8601日期时间字符串转换为Python日期时间对象?[复制]感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解将日期字符串转换为时间戳,并且为您提供关于python-如何在不
对于如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象?[复制]感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解将日期字符串转换为时间戳,并且为您提供关于python - 如何在不导入日期时间的情况下将字符串日期时间转换为日期时间?、Python - 将字符串转换为日期时间对象 示例输出、python 将字符串转换为带时区的日期时间时出错、Python-从日期时间字符串中删除时间的宝贵知识。
本文目录一览:- 如何将 ISO 8601 日期时间字符串转换为 Python 日期时间对象?[复制](将日期字符串转换为时间戳)
- python - 如何在不导入日期时间的情况下将字符串日期时间转换为日期时间?
- Python - 将字符串转换为日期时间对象 示例输出
- python 将字符串转换为带时区的日期时间时出错
- 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 - 如何在不导入日期时间的情况下将字符串日期时间转换为日期时间?
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 - 将字符串转换为日期时间对象 示例输出
-
y
应该是Y
。y
表示 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 将字符串转换为带时区的日期时间时出错?
代码:
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-从日期时间字符串中删除时间
我有一个日期字符串,想要将其转换为日期类型:
我尝试将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-从日期时间字符串中删除时间的相关知识,请在本站寻找。
本文标签: