mirror of
https://github.com/immich-app/immich
synced 2025-10-17 18:19:27 +00:00
20 lines
538 B
Dart
20 lines
538 B
Dart
|
|
const int _maxMillisecondsSinceEpoch = 8640000000000000; // 275760-09-13
|
||
|
|
const int _minMillisecondsSinceEpoch = -62135596800000; // 0001-01-01
|
||
|
|
|
||
|
|
DateTime? tryFromSecondsSinceEpoch(int? secondsSinceEpoch) {
|
||
|
|
if (secondsSinceEpoch == null) {
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
final milliSeconds = secondsSinceEpoch * 1000;
|
||
|
|
if (milliSeconds < _minMillisecondsSinceEpoch || milliSeconds > _maxMillisecondsSinceEpoch) {
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
|
||
|
|
try {
|
||
|
|
return DateTime.fromMillisecondsSinceEpoch(milliSeconds);
|
||
|
|
} catch (e) {
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
}
|