Skip to content

日期转时间戳

函数名:time_日期转时间戳 / tm_ToDateTimeStamp

功能描述

将日期时间转换为 Unix 时间戳字符串。支持输入日期时间字符串或 Excel 日期序列值,可返回 10 位秒级或 13 位毫秒级时间戳。

会员等级:🟢 免费版(Free)

语法

excel
=time_日期转时间戳(日期时间, 毫秒级)

参数

参数名类型必填默认值说明
日期时间Object日期时间字符串(如 "2025-01-01 12:00:00")或 Excel 日期序列值(如 45658.5
毫秒级BooleanTRUETRUE=返回 13 位毫秒级时间戳,FALSE=返回 10 位秒级时间戳

返回值

String - Unix 时间戳字符串。输入无效时返回相应错误提示。

使用示例

日期字符串转毫秒级时间戳

公式

excel
=time_日期转时间戳("2025-01-01 12:00:00")

结果

1735704000000

Excel 日期值转秒级时间戳

公式

excel
=time_日期转时间戳(45658, FALSE)

结果

1735660800

引用单元格日期转换

公式

excel
=time_日期转时间戳(A1, FALSE)

结果

1735660800

(A1 单元格包含 Excel 日期值)

技术说明

  • 输入为字符串时,先尝试 DateTime.TryParse 直接解析为日期时间。
  • 若字符串解析失败,再尝试 double.TryParse 将其视为 Excel 日期序列值,通过 DateTime.FromOADate 转换。
  • 输入为数值(double)时,直接通过 DateTime.FromOADate 转换为日期。
  • 使用 DateTimeOffset 计算 Unix 时间戳,根据 毫秒级 参数调用 ToUnixTimeMillisecondsToUnixTimeSeconds
  • 返回值为时间戳的字符串形式。

错误处理

错误场景返回值
字符串无法解析为日期无效的日期格式
输入类型不支持(非 string/double)不支持的输入类型
其他异常转换失败
正常输入Unix 时间戳字符串

基于源代码最新版本文档