个人使用UE4函数库,时间戳内容
include
//直接使用Windows.h会报错,需要限定范围
#include <windows/AllowWindowsPlatformTypes.h>
#include <windows.h>
#include <Windows/HideWindowsPlatformTypes.h>
//#include <string>
using std::string;
.h
//时间戳转现实时间
UFUNCTION(BlueprintPure, Category = "UnixTimestamp")
static FDateTime UnixTimestamp64ToDateTime(int64 UnixTime);
//时间戳转现实时间
UFUNCTION(BlueprintPure, Category = "UnixTimestamp")
static FDateTime UnixTimestamp32ToDateTime(int32 UnixTime);
//获取64位时间戳
UFUNCTION(BlueprintPure, Category = "UnixTimestamp")
static int64 GetUnixTimestamp64();
//获取32位时间戳
UFUNCTION(BlueprintPure, Category = "UnixTimestamp")
static int32 GetUnixTimestamp32();
//获取13位长度时间戳,本函数使用系统时间
UFUNCTION(BlueprintPure, Category = "UnixTimestamp")
static FString GetUnixTimestamp13Digits();
.cpp
/***
* UMyBlueprintFunctionLibrary: 类名,与实际命名为准
* UnixTimestamp64ToDateTime: 函数名,必须与头文件相同,可替换
* UnixTime: 输入值名称,必须与头文件相同,可替换
* 下同
***/
FDateTime UMyBlueprintFunctionLibrary::UnixTimestamp64ToDateTime(int64 UnixTime)
{
FDateTime Time = FDateTime::FromUnixTimestamp(UnixTime);
return Time;
}
FDateTime UMyBlueprintFunctionLibrary::UnixTimestamp32ToDateTime(int32 UnixTime)
{
FDateTime Time = FDateTime::FromUnixTimestamp(UnixTime);
return Time;
}
int64 UMyBlueprintFunctionLibrary::GetUnixTimestamp64()
{
FDateTime Time = FDateTime::Now();
int32 Timestamp = Time.ToUnixTimestamp();
return Timestamp;
}
int32 UMyBlueprintFunctionLibrary::GetUnixTimestamp32()
{
FDateTime Time = FDateTime::Now();
int64 Timestamp = Time.ToUnixTimestamp();
return Timestamp;
}
FString UMyBlueprintFunctionLibrary::GetUnixTimestamp13Digits()
{
//定义临时变量
string nowTimeUnix;
string cs_uninxtime;
string cs_milliseconds;
SYSTEMTIME sysTime;
GetLocalTime(&sysTime);
time_t unixTime;
time(&unixTime);
char buf[30], bufms[30];
sprintf_s(buf, sizeof(buf), "%I64d", (INT64)unixTime);
sprintf_s(bufms, sizeof(bufms), "%03I64d", (INT64)sysTime.wMilliseconds);
nowTimeUnix = string(buf) + string(bufms);
FString Timestamp = FString(nowTimeUnix.c_str());
// UE_LOG(LogTemp, Log, TEXT("Timestamp:%s"), *Timestamp);
return Timestamp;
}