📜  迄今为止的excel unix时间戳 (1)

📅  最后修改于: 2023-12-03 15:12:18.748000             🧑  作者: Mango

迄今为止的 Excel Unix 时间戳

Excel Unix 时间戳是指日常使用的 Excel 中显示的日期数字所对应的 Unix 时间(即自1970年1月1日00:00:00 GMT以来经过的秒数)。

Excel 中的时间格式

在 Excel 中,时间被表示为一个小数,其整数部分代表日期,小数部分代表时间。例如,2019年1月1日下午2点30分可以表示为 43465.6041666667,其中43465是日期的序号,0.6041666667表示时间的比例。具体来说,1天相当于24小时,即1/24,1小时是60分钟,即1/24/60,1分钟是60秒,即1/24/60/60,所以 0.5(12:00:00 PM)= 0.5 * 24 = 12 小时,0.25(6:00:00 AM)= 0.25 * 24 = 6 小时。

Excel Unix 时间戳的计算方法

Excel UNIX 时间戳 = (excel 日期 - 25569) * 86400

其中,25569是一个偏差值,表示Excel与Unix的日期数。86400是一天的秒数。

下面是使用Python计算 Excel Unix 时间戳的示例代码片段:

import datetime

def excel_unix_timestamp(excel_date):
    epoch_start = datetime.datetime.strptime('1970-01-01', '%Y-%m-%d')
    delta = datetime.timedelta(days=(excel_date - 25569))
    unix_time = (epoch_start + delta).strftime('%s')
    return unix_time

# 示例:将 43465.6041666667 转换为 Unix 时间戳
print(excel_unix_timestamp(43465.6041666667)) # 1546300200
Excel与Unix时间戳的互相转换

除了使用上述公式进行 Excel Unix 时间戳的转换外,还可以使用Python的xlrd库和time库来实现 Excel 日期和 Unix 时间戳的互相转换。下面是示例代码片段:

import xlrd
import datetime
import time

# 将Excel日期转换为Unix时间戳
def excel_date_to_unix_timestamp(excel_date):
    dt_tuple = xlrd.xldate_as_tuple(excel_date, 0)
    timestamp = time.mktime(dt_tuple)
    return int(timestamp)

# 将Unix时间戳转换为Excel日期
def unix_timestamp_to_excel_date(unix_time):
    dt = datetime.datetime.fromtimestamp(unix_time)
    excel_date = (dt - datetime.datetime(1899, 12, 30)).days + \
        (dt - datetime.datetime(1899, 12, 30)).seconds / 86400
    return excel_date

# 示例:将 43465.6041666667 转换为 Unix 时间戳
excel_date = 43465.6041666667
print(excel_date_to_unix_timestamp(excel_date)) # 1546300200

# 示例:将 1546300200 转换为 Excel 时间
unix_time = 1546300200
print(unix_timestamp_to_excel_date(unix_time)) # 43465.6041666667

以上就是 Excel Unix 时间戳的介绍和示例代码片段。