前言
将时间戳转换为格式化的时间,有两种方法。
一种是直接使用lua的方法,一种是lua调用go的方法。
其中,在go中需要注意时区问题。
方法一
print(os.date("%Y-%m-%d %H:%M:%S", 1763266042))
返回:“2025-11-16 12:07:22”
方法二
go格式化时间戳为标准的时间格式:
func FormatTime(timestamp int64, layout string) string {
t := time.Unix(timestamp, 0)
return t.Format(layout)
}
懒人精灵调用go的方法:
print(gobridge.call("libgo.so", "FormatTime", 1763266042, "2006-01-02 15:04:05"))
返回:“2025-11-16 04:07:22”
可以看到,go返回的时间,比lua返回的时间少了8个小时!
这是一个时区问题。Go和Lua在处理时间戳时的默认时区设置不同导致的。
Lua的os.date函数默认使用本地时区,而Go的time.Unix默认使用UTC时间。在中国,本地时区是UTC+8,所以会相差8小时。
设置go的时区
可以使用init函数的方式设置时区。
// libgo\main.go
func init() {
// 设置本地时区为东八区(中国标准时间)
var err error
time.Local, err = time.LoadLocation("Asia/Shanghai")
if err != nil {
// 如果加载时区失败,使用固定偏移量
time.Local = time.FixedZone("CST", 8*3600)
}
}
这样修改后,FormatTime函数就能正确处理时区了。这个init函数会在包被导入时自动执行,设置正确的本地时区。
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】使用go和懒人精灵混合编程中,将时间戳转换为格式化的时间,时区转换问题
飞云脚本圈: 586333520

Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】使用go和懒人精灵混合编程中,将时间戳转换为格式化的时间,时区转换问题