DateTime
DateTime은 언리얼에서 시간을 관리하기 위해 사용하는 구조체이다.
다음과 같이 현재 시간에 대한 정보를 얻을 수 있다.
FDateTime CurrentTimestamp = FDateTime::Now();
얻은 타임스탬프를 초로 환산하고 싶은 경우 다음과 같이 한다.
FDateTime CurrentTimestamp = FDateTime::Now();
FDateTime UnixEpochTime = FDateTime(1970, 1, 1);
double TotalMilliseconds = (CurrentTimestamp - UnixEpochTime).GetTotalMilliseconds();
두 타임스탬프를 비교하고 싶은 경우 둘 다 초로 환산하여 비교하면 된다.
타임스탬프를 직접 비교하는 경우 원하는 결과가 나오지 않을 수 있다. (Comp1 : false Comp2 : true)
FDateTime InLastTimestamp = FDateTime(1970, 1, 2);
FDateTime InCurrentTimestamp = FDateTime(1970, 1, 3);
bool bComp1 = InLastTimestamp < InCurrentTimestamp;
double A = (InLastTimestamp - UnixEpochTime).GetTotalMilliseconds();
double B = (InCurrentTimestamp - UnixEpochTime).GetTotalMilliseconds();
bool bComp2 = A < B;
UE_LOG(LogTemp, Error, TEXT("%s %s Comp1 : %d Comp2 : %d"),
*InLastTimestamp.ToString(),
*InCurrentTimestamp.ToString(),
(int32)(bComp1),
(int32)(bComp2));
다음과 같이 문자열에서 파싱도 가능하다.
FString OutTimestampText = TEXT("2023-09-04 05:56:31.185");
FDateTime OutTimestamp;
if (FDateTime::Parse(OutTimestampText, OutTimestamp))
{
// Successfully parsed the timestamp
int32 Year = ParsedDateTime.GetYear();
int32 Month = ParsedDateTime.GetMonth();
int32 Day = ParsedDateTime.GetDay();
int32 Hour = ParsedDateTime.GetHour();
int32 Minute = ParsedDateTime.GetMinute();
int32 Second = ParsedDateTime.GetSecond();
int32 Millisecond = ParsedDateTime.GetMillisecond();
UE_LOG(LogTemp, Warning, TEXT("Year: %d"), Year);
UE_LOG(LogTemp, Warning, TEXT("Month: %d"), Month);
UE_LOG(LogTemp, Warning, TEXT("Day: %d"), Day);
UE_LOG(LogTemp, Warning, TEXT("Hour: %d"), Hour);
UE_LOG(LogTemp, Warning, TEXT("Minute: %d"), Minute);
UE_LOG(LogTemp, Warning, TEXT("Second: %d"), Second);
UE_LOG(LogTemp, Warning, TEXT("Millisecond: %d"), Millisecond);
}
else
{
// Failed to parse the timestamp
UE_LOG(LogTemp, Error, TEXT("Failed to parse timestamp: %s"), *TimestampString);
}
'게임 엔진 > Unreal' 카테고리의 다른 글
[Unreal] [Networking] Http Module 사용 및 API Handler 개발 (0) | 2022.10.03 |
---|---|
[Unreal] [Networking] TCP Socket을 이용한 Client 개발 (0) | 2022.08.27 |
[Unreal] [Example] Editor에 Asset 생성 및 저장 (7) | 2021.08.10 |
[Unreal] 플러그인과 모듈 (0) | 2021.03.24 |
[Unreal] Android 디버깅 방법들 (0) | 2021.03.18 |