Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python返回5位时间戳,这是什么?_Python_Python 3.x_Timestamp - Fatal编程技术网

Python返回5位时间戳,这是什么?

Python返回5位时间戳,这是什么?,python,python-3.x,timestamp,Python,Python 3.x,Timestamp,我是一名PHP程序员,我会使用Python(3.4),因为使用Python更容易。 我的脚本将.xlsx文件转换为许多.csv文件(每张图纸一个.csv) 代码如下: wb = xlrd.open_workbook(filepath) for i in range(0, wb.nsheets): sh = wb.sheet_by_index(i) sheet_name = sh.name sheet_name = sheet_name.replace(" ", "_"

我是一名PHP程序员,我会使用Python(3.4),因为使用Python更容易。 我的脚本将.xlsx文件转换为许多.csv文件(每张图纸一个.csv)

代码如下:

wb = xlrd.open_workbook(filepath)

for i in range(0, wb.nsheets):

    sh = wb.sheet_by_index(i)
    sheet_name = sh.name
    sheet_name = sheet_name.replace(" ", "_");
    fp = open(sheet_name+'.csv', 'at', encoding='utf8')
    wr = csv.writer(fp, quoting=csv.QUOTE_ALL)

    for row_num in range(sh.nrows):
        wr.writerow(sh.row_values(row_num))

    fp.close()
完整代码如下:

这很有效,除了我有一个字段是日期,它在excel中显示例如:01/01/2009

但最终的csv包含一个39814的数字。请问这是什么,我能用它做什么?2009年2月1日是39815

这是一个可以用来查找unix时间戳的数字吗?或者这是一个问题,我应该改变我的脚本?如果它只返回字符串“01/01/2009”,我会觉得更安全


有人能帮我理解我在处理什么吗?

如果39814映射到2009-1-1,39815映射到2009-1-2,那么看起来序号是在计算自1899-12-30以来的天数:

In [57]: DT.date(1899,12,30) + DT.timedelta(days=39814)
Out[57]: datetime.date(2009, 1, 1)

要将Excel数字转换为Unix时间戳,您可以使用将
datetime.date
对象转换为时间元组,然后将其转换为时间戳(自纪元起的秒数):


Python在这里无关紧要;这就是您看到的内部Excel日期表示形式。
In [80]: import time

In [81]: time.mktime((DT.datetime(1899,12,30) + DT.timedelta(days=39814)).timetuple())
Out[81]: 1230786000.0