|
发表于 2023-2-8 01:19:49
|
显示全部楼层
江苏省徐州市
.版本 2
.子程序 L_时间_到时间戳, 文本型, 公开, 把指定日期时间转换为10位或13位时间戳,默认生成13位时间戳。13位:1325252169718,10位:1325252169
.参数 参_时间, 日期时间型, 可空, 可为空,默认为现行时间
.参数 参_十位时间戳, 逻辑型, 可空, 本参数为真时,将生成10位时间戳返回
.局部变量 局_现行系统时间, L_SYSTEMTIME
.局部变量 局_现行文件时间, L_FILETIME
.局部变量 局_现行完整时间, 长整数型
.局部变量 局_1970年系统时间, L_SYSTEMTIME
.局部变量 局_1970年文件时间, L_FILETIME
.局部变量 局_1970年完整时间, 长整数型
.局部变量 返回值, 文本型
.如果 (是否为空 (参_时间))
L_GetLocalTime (局_现行系统时间)
.否则
L_VariantTimeToSystemTime (参_时间, 局_现行系统时间)
.如果结束
L_SystemTimeToFileTime (局_现行系统时间, 局_现行文件时间)
' 局_1970年系统时间.年 = 1970
' 局_1970年系统时间.月 = 1
' 局_1970年系统时间.日 = 1
' 局_1970年系统时间.时 = 8
' L_SystemTimeToFileTime (局_1970年系统时间, 局_1970年文件时间)
' 局_1970年完整时间 = L_运算_拼合长整数 (局_1970年文件时间.dwLowDateTime, 局_1970年文件时间.dwHighDateTime) ÷ 10000
' 调试输出 (局_1970年完整时间)
局_现行完整时间 = L_运算_拼合长整数 (局_现行文件时间.dwLowDateTime, 局_现行文件时间.dwHighDateTime) ÷ 10000
返回值 = 到文本 (L_运算_减法_长整数 (局_现行完整时间, 1.16445024e+013))
.如果真 (L_文本_取长度 (返回值) < 13)
返回值 = L_文本_补齐位数 (返回值, “0”, 13, 真)
.如果真结束
.如果真 (参_十位时间戳)
返回值 = 取文本左边 (返回值, 10)
.如果真结束
返回 (返回值)
修复代码,感谢@凌哥 提供 |
|