python - 解析神秘日期格式

时间:2015-07-30 22:47:36

标签: python excel date parsing

我正在将Excel电子表格中的数据导入python。我的日期是以一种奇怪的形式出现的,我不熟悉也无法解析。

in excel :( 2015年7月31日)

42216
导入后

u'/Date(1438318800000-0500)/'

两个问题:

  1. 这是什么格式以及如何将其解析为更直观,更易于阅读的内容?
  2. 是否有一种强大的,瑞士军刀式的方式来转换日期而不指定输入格式?

1 个答案:

答案 0 :(得分:0)

时区必然会使这更复杂,所以让我们忽略它们......

正如@SteJ所说,你得到的是(接近)自1970年1月1日以来的秒数。Here's a Wikipedia article通常如何使用。奇怪的是,你得到的字符串似乎附有一个时区(-0500,北美的EST)。如果它是正确的UNIX时间(总是以UTC为单位)没有任何意义,但我们会传递给它......

假设你可以将它缩减到一个数字(没有时区),转换成Python中合理的东西真的很直接(注意精度的降低;你的原始数字是自纪元以来的毫秒数,而不是从纪元开始的标准秒数:

from datetime import datetime

time_stamp = 1438318800

time_stamp_dt = datetime.fromtimestamp(time_stamp)

然后,您可以使用strftimetime_stamp_dt变为您认为最佳的格式,例如time_stamp_dt.strftime('%m/%d/%Y'),这几乎可以为您提供最初的内容。

现在,假设您提供的字符串格式相当规律,我们可以非常简单地提取相关时间:

s = '/Date(1438318800000-0500)/'
time_stamp = int(s[6:16])