加入收藏 | 设为首页 | 会员中心 | 我要投稿 武汉站长网 (https://www.027zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

[UE4] 蓝图调用C++函数实现Unix时间戳转UTC日期时间

发布时间:2022-12-03 15:31:51 所属栏目:Unix 来源:网络
导读: 今天在用UE4自带的Mobile Location Services插件时,发现有一个LocationServicesData输出的数据,第一个就是“Timestamp”,由于相关资料几乎没有,经过探索后发现这个时间戳其实是精确到毫

今天在用UE4自带的Mobile Location Services插件时,发现有一个LocationServicesData输出的数据,第一个就是“Timestamp”,由于相关资料几乎没有,经过探索后发现这个时间戳其实是精确到毫秒的13位Unix时间戳(如1591070425488,代表北京时间2020/6/2 12:0:25)。

android unix时间戳转换成时间_unix 格式 时间 转_unix时间戳

LocationServicesData中的13位Unix时间戳

后欲将其转化为蓝图可计算的DateTime,进而转换成UTC时间以便阅读,发现蓝图中并未有此函数。一番查阅资料后发现UE4 C++已经实现了相关功能,故在此整理分享。

unix时间戳_unix 格式 时间 转_android unix时间戳转换成时间

UE4的C++ API中有相关转化的函数

首先创建一个父类为BlueprintFunctionLibrary的C++类

android unix时间戳转换成时间_unix 格式 时间 转_unix时间戳

2.编写头文件,代码如下图所示

android unix时间戳转换成时间_unix 格式 时间 转_unix时间戳

在这里最关键的是将函数说明符定义为BlueprintPure,也就是蓝图里的纯虚函数,Category可以自行归类,我这里起的名字是“UnixTimestamp”

3.代码实现部分(cpp文件)

android unix时间戳转换成时间_unix 格式 时间 转_unix时间戳

最关键的只有一行代码,不过要注意传入值定义为int 64,否则将不够存储13位时间戳

4.在蓝图中调用相关函数unix时间戳,这里列出我撰写的节点供参考

android unix时间戳转换成时间_unix时间戳_unix 格式 时间 转

最后一个节点即为自定义C++函数

这里在13位时间戳(Float)的基础上Floor to int64,再除以1000转成10位,最后调用自定义节点

unix时间戳_unix 格式 时间 转_android unix时间戳转换成时间

额外补充如何将DateTime类型转成UTC时间,使用上图中的节点,时区留空即可(自动转为当前时区)

(编辑:武汉站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!