日期转时间戳
函数名:time_日期转时间戳 / tm_ToDateTimeStamp
功能描述
将日期时间转换为 Unix 时间戳字符串。支持输入日期时间字符串或 Excel 日期序列值,可返回 10 位秒级或 13 位毫秒级时间戳。
会员等级:🟢 免费版(Free)
语法
excel
=time_日期转时间戳(日期时间, 毫秒级)参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 日期时间 | Object | 是 | 无 | 日期时间字符串(如 "2025-01-01 12:00:00")或 Excel 日期序列值(如 45658.5) |
| 毫秒级 | Boolean | 否 | TRUE | TRUE=返回 13 位毫秒级时间戳,FALSE=返回 10 位秒级时间戳 |
返回值
String - Unix 时间戳字符串。输入无效时返回相应错误提示。
使用示例
日期字符串转毫秒级时间戳
公式:
excel
=time_日期转时间戳("2025-01-01 12:00:00")结果:
1735704000000Excel 日期值转秒级时间戳
公式:
excel
=time_日期转时间戳(45658, FALSE)结果:
1735660800引用单元格日期转换
公式:
excel
=time_日期转时间戳(A1, FALSE)结果:
1735660800(A1 单元格包含 Excel 日期值)
技术说明
- 输入为字符串时,先尝试
DateTime.TryParse直接解析为日期时间。 - 若字符串解析失败,再尝试
double.TryParse将其视为 Excel 日期序列值,通过DateTime.FromOADate转换。 - 输入为数值(double)时,直接通过
DateTime.FromOADate转换为日期。 - 使用
DateTimeOffset计算 Unix 时间戳,根据毫秒级参数调用ToUnixTimeMilliseconds或ToUnixTimeSeconds。 - 返回值为时间戳的字符串形式。
错误处理
| 错误场景 | 返回值 |
|---|---|
| 字符串无法解析为日期 | 无效的日期格式 |
| 输入类型不支持(非 string/double) | 不支持的输入类型 |
| 其他异常 | 转换失败 |
| 正常输入 | Unix 时间戳字符串 |