[UE4] 蓝图调用C++函数实现Unix时间戳转UTC日期时间
今天在用UE4自带的Mobile Location Services插件时,发现有一个LocationServicesData输出的数据,第一个就是“Timestamp”,由于相关资料几乎没有,经过探索后发现这个时间戳其实是精确到毫秒的13位Unix时间戳(如1591070425488,代表北京时间2020/6/2 12:0:25)。 LocationServicesData中的13位Unix时间戳 后欲将其转化为蓝图可计算的DateTime,进而转换成UTC时间以便阅读,发现蓝图中并未有此函数。一番查阅资料后发现UE4 C++已经实现了相关功能,故在此整理分享。 UE4的C++ API中有相关转化的函数 首先创建一个父类为BlueprintFunctionLibrary的C++类 2.编写头文件,代码如下图所示 在这里最关键的是将函数说明符定义为BlueprintPure,也就是蓝图里的纯虚函数,Category可以自行归类,我这里起的名字是“UnixTimestamp” 3.代码实现部分(cpp文件) 最关键的只有一行代码,不过要注意传入值定义为int 64,否则将不够存储13位时间戳 4.在蓝图中调用相关函数unix时间戳,这里列出我撰写的节点供参考 最后一个节点即为自定义C++函数 这里在13位时间戳(Float)的基础上Floor to int64,再除以1000转成10位,最后调用自定义节点 额外补充如何将DateTime类型转成UTC时间,使用上图中的节点,时区留空即可(自动转为当前时区) (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |