UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DateTime.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "CoreTypes.h"
8#include "Misc/Timespan.h"
11#include "Templates/TypeHash.h"
12
13class FArchive;
14class FOutputDevice;
15class UObject;
16
17
36enum class EMonthOfYear
37{
38 January = 1,
40 March,
41 April,
42 May,
43 June,
44 July,
45 August,
47 October,
50};
51
52
76{
77public:
78
81 : Ticks(0)
82 { }
83
90 : Ticks(InTicks)
91 { }
92
105
106public:
107
115 {
116 return FDateTime(Ticks + Other.GetTicks());
117 }
118
126 {
127 Ticks += Other.GetTicks();
128
129 return *this;
130 }
131
132 UE_DEPRECATED(5.1, "Adding dates doesn't make sense. Please use FDateTime + FTimespan instead")
133 FDateTime operator+(const FDateTime& Other)
134 {
135 return FDateTime(Ticks + Other.Ticks);
136 }
137
145 {
146 return FTimespan(Ticks - Other.Ticks);
147 }
148
156 {
157 return FDateTime(Ticks - Other.GetTicks());
158 }
159
167 {
168 Ticks -= Other.GetTicks();
169
170 return *this;
171 }
172
179 bool operator==(const FDateTime& Other) const
180 {
181 return (Ticks == Other.Ticks);
182 }
183
190 bool operator!=(const FDateTime& Other) const
191 {
192 return (Ticks != Other.Ticks);
193 }
194
201 bool operator>(const FDateTime& Other) const
202 {
203 return (Ticks > Other.Ticks);
204 }
205
212 bool operator>=(const FDateTime& Other) const
213 {
214 return (Ticks >= Other.Ticks);
215 }
216
223 bool operator<(const FDateTime& Other) const
224 {
225 return (Ticks < Other.Ticks);
226 }
227
234 bool operator<=(const FDateTime& Other) const
235 {
236 return (Ticks <= Other.Ticks);
237 }
238
239public:
240
252 CORE_API bool ExportTextItem(FString& ValueStr, FDateTime const& DefaultValue, UObject* Parent, int32 PortFlags, UObject* ExportRootScope) const;
253
262 {
263 return FDateTime(Ticks - (Ticks % ETimespan::TicksPerDay));
264 }
265
274
281 CORE_API int32 GetDay() const;
282
290
298
306 {
307 return (int32)((Ticks / ETimespan::TicksPerHour) % 24);
308 }
309
316 CORE_API int32 GetHour12() const;
317
328 double GetJulianDay() const
329 {
330 return 1721425.5 + double(Ticks / ETimespan::TicksPerDay) + GetTimeOfDay().GetTotalDays();
331 }
332
342 double GetModifiedJulianDay() const
343 {
344 return (GetJulianDay() - 2400000.5);
345 }
346
354 {
355 return (int32)((Ticks / ETimespan::TicksPerMillisecond) % 1000);
356 }
357
365 {
366 return (int32)((Ticks / ETimespan::TicksPerMinute) % 60);
367 }
368
375 CORE_API int32 GetMonth() const;
376
384 {
385 return static_cast<EMonthOfYear>(GetMonth());
386 }
387
395 {
396 return (int32)((Ticks / ETimespan::TicksPerSecond) % 60);
397 }
398
405 {
406 return Ticks;
407 }
408
416 {
417 return FTimespan(Ticks % ETimespan::TicksPerDay);
418 }
419
426 CORE_API int32 GetYear() const;
427
438 CORE_API bool ImportTextItem(const TCHAR*& Buffer, int32 PortFlags, UObject* Parent, FOutputDevice* ErrorText);
439
446 bool IsAfternoon() const
447 {
448 return (GetHour() >= 12);
449 }
450
457 bool IsMorning() const
458 {
459 return (GetHour() < 12);
460 }
461
468 CORE_API bool Serialize(FArchive& Ar);
469
473 CORE_API bool NetSerialize(FArchive& Ar, class UPackageMap* Map, bool& bOutSuccess);
474
483 CORE_API FString ToHttpDate() const;
484
493 CORE_API FString ToIso8601() const;
494
504 CORE_API FString ToString() const;
505
527 CORE_API FString ToString(const TCHAR* Format) const;
528 CORE_API void ToString(const TCHAR* Format, FStringBuilderBase& Result) const;
529
556 CORE_API FString ToFormattedString(const TCHAR* Format) const;
557
565 {
566 return (Ticks - FDateTime(1970, 1, 1).Ticks) / ETimespan::TicksPerSecond;
567 }
568
576 {
577 return double(Ticks - FDateTime(1970, 1, 1).Ticks) / ETimespan::TicksPerSecond;
578 }
579
580public:
581
591
600
609 {
610 return FDateTime((int64)((JulianDay - 1721425.5) * ETimespan::TicksPerDay));
611 }
612
624
636
647 static CORE_API bool IsLeapYear(int32 Year);
648
657 {
658 return FDateTime(3652059 * ETimespan::TicksPerDay - 1);
659 }
660
669 {
670 return FDateTime(0);
671 }
672
683 static CORE_API FDateTime Now();
684
696 static CORE_API bool Parse(const FString& DateTimeString, FDateTime& OutDateTime);
697
719 static CORE_API bool ParseHttpDate(const FString& HttpDate, FDateTime& OutDateTime);
720
730
740 {
741 return Now().GetDate();
742 }
743
762 static CORE_API FDateTime UtcNow();
763
779
780public:
781
790 {
791 return Ar << DateTime.Ticks;
792 }
793
801 {
802 return Slot << DateTime.Ticks;
803 }
804
812 {
813 return GetTypeHash(DateTime.Ticks);
814 }
815
816protected:
817
819 static const int32 DaysPerMonth[];
820
822 static const int32 DaysToMonth[];
823
825 static const TCHAR* ShortDayNames[];
826 static const TCHAR* LongDayNames[];
827
829 static const TCHAR* ShortMonthNames[];
830 static const TCHAR* LongMonthNames[];
831
832private:
834
835private:
836
838 int64 Ticks;
839};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EMonthOfYear
Definition DateTime.h:37
EDayOfWeek
Definition DateTime.h:22
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition OutputDevice.h:133
Definition StructuredArchiveSlots.h:52
Definition Object.h:95
Definition CoreNet.h:191
constexpr int64 TicksPerDay
Definition Timespan.h:32
constexpr int64 TicksPerMillisecond
Definition Timespan.h:41
constexpr int64 TicksPerMinute
Definition Timespan.h:44
constexpr int64 TicksPerHour
Definition Timespan.h:35
constexpr int64 TicksPerSecond
Definition Timespan.h:47
Definition DateTime.h:76
static const int32 DaysToMonth[]
Definition DateTime.h:26
static FDateTime MaxValue()
Definition DateTime.h:656
static const TCHAR * LongMonthNames[]
Definition DateTime.h:32
int64 GetTicks() const
Definition DateTime.h:404
static CORE_API bool Parse(const FString &DateTimeString, FDateTime &OutDateTime)
Definition DateTime.cpp:388
FDateTime GetDate() const
Definition DateTime.h:261
double GetModifiedJulianDay() const
Definition DateTime.h:342
CORE_API FString ToString() const
Definition DateTime.cpp:222
friend struct Z_Construct_UScriptStruct_FDateTime_Statics
Definition DateTime.h:833
bool operator<=(const FDateTime &Other) const
Definition DateTime.h:234
static const TCHAR * ShortMonthNames[]
Definition DateTime.h:31
int32 GetMinute() const
Definition DateTime.h:364
FDateTime()
Definition DateTime.h:80
FDateTime & operator-=(const FTimespan &Other)
Definition DateTime.h:166
CORE_API FString ToIso8601() const
Definition DateTime.cpp:216
double GetJulianDay() const
Definition DateTime.h:328
CORE_API FString ToFormattedString(const TCHAR *Format) const
Definition DateTime.cpp:292
bool operator>=(const FDateTime &Other) const
Definition DateTime.h:212
FDateTime & operator+=(const FTimespan &Other)
Definition DateTime.h:125
CORE_API int32 GetYear() const
Definition DateTime.cpp:164
friend uint32 GetTypeHash(const FDateTime &DateTime)
Definition DateTime.h:811
static CORE_API int32 DaysInYear(int32 Year)
Definition DateTime.cpp:355
static CORE_API bool IsLeapYear(int32 Year)
Definition DateTime.cpp:366
bool operator!=(const FDateTime &Other) const
Definition DateTime.h:190
EMonthOfYear GetMonthOfYear() const
Definition DateTime.h:383
CORE_API bool NetSerialize(FArchive &Ar, class UPackageMap *Map, bool &bOutSuccess)
Definition DateTime.cpp:201
static CORE_API bool ParseIso8601(const TCHAR *DateTimeString, FDateTime &OutDateTime)
Definition DateTime.cpp:716
FTimespan GetTimeOfDay() const
Definition DateTime.h:415
CORE_API int32 GetDay() const
Definition DateTime.cpp:107
int64 ToUnixTimestamp() const
Definition DateTime.h:564
static CORE_API FDateTime Now()
Definition DateTime.cpp:377
static CORE_API int32 DaysInMonth(int32 Year, int32 Month)
Definition DateTime.cpp:342
static CORE_API bool Validate(int32 Year, int32 Month, int32 Day, int32 Hour, int32 Minute, int32 Second, int32 Millisecond)
Definition DateTime.cpp:989
FDateTime operator-(const FTimespan &Other) const
Definition DateTime.h:155
static CORE_API FDateTime UtcNow()
Definition DateTime.cpp:980
CORE_API int32 GetMonth() const
Definition DateTime.cpp:155
CORE_API int32 GetHour12() const
Definition DateTime.cpp:137
static const int32 DaysPerMonth[]
Definition DateTime.h:25
bool operator<(const FDateTime &Other) const
Definition DateTime.h:223
CORE_API bool ExportTextItem(FString &ValueStr, FDateTime const &DefaultValue, UObject *Parent, int32 PortFlags, UObject *ExportRootScope) const
Definition DateTime.cpp:74
CORE_API bool ImportTextItem(const TCHAR *&Buffer, int32 PortFlags, UObject *Parent, FOutputDevice *ErrorText)
Definition DateTime.cpp:173
static FDateTime FromUnixTimestampDecimal(double UnixTime)
Definition DateTime.h:632
FDateTime(int64 InTicks)
Definition DateTime.h:89
static const TCHAR * LongDayNames[]
Definition DateTime.h:29
static FDateTime MinValue()
Definition DateTime.h:668
int32 GetMillisecond() const
Definition DateTime.h:353
CORE_API int32 GetDayOfYear() const
Definition DateTime.cpp:123
int32 GetHour() const
Definition DateTime.h:305
bool operator>(const FDateTime &Other) const
Definition DateTime.h:201
static FDateTime FromUnixTimestamp(int64 UnixTime)
Definition DateTime.h:620
static FDateTime FromJulianDay(double JulianDay)
Definition DateTime.h:608
CORE_API FString ToHttpDate() const
Definition DateTime.cpp:208
double ToUnixTimestampDecimal() const
Definition DateTime.h:575
bool IsMorning() const
Definition DateTime.h:457
FTimespan operator-(const FDateTime &Other) const
Definition DateTime.h:144
static CORE_API bool ParseHttpDate(const FString &HttpDate, FDateTime &OutDateTime)
Definition DateTime.cpp:425
CORE_API EDayOfWeek GetDayOfWeek() const
Definition DateTime.cpp:116
bool operator==(const FDateTime &Other) const
Definition DateTime.h:179
static FDateTime Today()
Definition DateTime.h:739
FDateTime operator+(const FTimespan &Other) const
Definition DateTime.h:114
friend void operator<<(FStructuredArchive::FSlot Slot, FDateTime &DateTime)
Definition DateTime.h:800
bool IsAfternoon() const
Definition DateTime.h:446
static const TCHAR * ShortDayNames[]
Definition DateTime.h:28
friend FArchive & operator<<(FArchive &Ar, FDateTime &DateTime)
Definition DateTime.h:789
int32 GetSecond() const
Definition DateTime.h:394
Definition Timespan.h:76
double GetTotalDays() const
Definition Timespan.h:465