【问题标题】:How to convert this timestamp 2018-07-11T10:40:09+00:00 to epoch? [duplicate]如何将此时间戳 2018-07-11T10:40:09+00:00 转换为纪元? [复制]
【发布时间】:2021-04-14 14:26:24
【问题描述】:

我搜索了近2天,如何转换这种时间戳格式: 2018-07-11T10:40:09+00:00 从 excel 单元格收集到一个纪元?

我使用的代码是这样的:

import openpyxl 
import datetime
from datetime import date, datetime, time

path = "/home/UbuntuUser/Desktop/Times.xlsx"
wb_obj = openpyxl.load_workbook(path) 
sheet_obj = wb_obj.active 
cell_obj = sheet_obj.cell(row = 2, column = 3) 
print(cell_obj.value) 
print(datetime.fromisoformat(cell_obj.value))
print(time.mktime(datetime.fromisoformat(cell_obj.value)))

这不起作用! (来源:https://www.kite.com/python/answers/how-to-convert-the-current-date-to-an-epoch-timestamp-in-pythonhttps://www.geeksforgeeks.org/python-reading-excel-file-using-openpyxl-module/

我读了这篇文章:How to convert python timestamp string to epoch?

我尝试使用此代码:

from datetime import datetime

p = '%Y-%m-%dT%H:%M:%S.%fZ'
mytime = "2009-03-08T00:27:31.807Z"
epoch = datetime(1970, 1, 1)
print((datetime.strptime(mytime, p) - epoch).total_seconds())

但是我读到的格式不一样,而且不起作用...有什么想法吗??

【问题讨论】:

  • 通常 Excel 不会将日期存储为字符串,而是将其存储为从纪元开始的天数。只需乘以每天的秒数就可以得到你想要的。

标签: python timestamp


【解决方案1】:

利用文档中的strftime() and strptime() Format Codes 部分,以下应该可以工作:

from datetime import datetime

date_time_str_excel = '2018-07-11T10:40:09+00:00'
date_time_obj = datetime.strptime(date_time_str_excel, '%Y-%m-%dT%H:%M:%S%z')
print(date_time_obj)
print(date_time_obj.timestamp())

输出:

2018-07-11 10:40:09+00:00
1531305609.0

【讨论】:

  • 您可以使用内置的fromisoformat - example
猜你喜欢
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多