python - 从 T 和 Z 转换为日期时间时,时间戳秒会发生变化
问题描述
我有两个时间戳
starttime = '2020-10-13T13:42:01Z'
endtime = '2020-10-13T13:42:21Z'
当我将其转换为日期时间时,时间戳的秒数会发生变化
timestampstart = pd.to_datetime(starttime, format="%Y-%m-%dT%H:%M:%S%fZ")
timestampend = pd.to_datetime(endtime, format="%Y-%m-%dT%H:%M:%S%fZ")
print(timestampstart,timestampend)
2020-10-13 13:42:00.100000 2020-10-13 13:42:02.100000
我需要的输出是
2020-10-13 13:42:01 2020-10-13 13:42:21
问题是什么?我该如何解决?
解决方案
正如所评论的,您的时间戳是根据ISO8601格式化的。T
分隔日期和时间,Z
代表“祖鲁时间”,即UTC 。正确的strptime
格式代码是
'%Y-%m-%dT%H:%M:%S%z'
请注意,没有小数秒 ( %f
),而不是文字Z
,您应该使用%z
将 Z 转换为 UTC。您还可以使用 Pythondatetime.fromisoformat
进行一些调整,例如在这里进行解析。
但是:由于格式是标准化的并且您似乎正在使用pandas
,您可以自动解析为例如
import pandas as pd
pd.to_datetime('2020-10-13T13:42:01Z')
Out[3]: Timestamp('2020-10-13 13:42:01+0000', tz='UTC')
推荐阅读
- r - 为什么我在计算平均值时会得到 NA?
- php - PDF 附件未显示在 mailtrap HTML 输出中,但显示在 RAW 部分 - Laravel 5.7
- linux - 使用 shell 脚本删除符号链接
- react-native - 如何使用试剂从其他文件中正确导入组件?
- javascript - Kibana 不显示从 Node.js Winston Logger 发送到 Elasticsearch 的日志
- php - 如果我使用 AWS RDS 将用户输入存储到数据库中,我的 PHP 文件应该放在哪里?
- java - 如何跟踪 Java 异常
- python - 在 Tkinter 中,有没有办法在运行程序时停止执行回调函数?
- c++ - 我如何计算向量[5][1] N 次
- json - Ionic - 带有 laravel json 响应的 API