2025-09-03 00:50:49 +05:30
|
|
|
const int _maxMillisecondsSinceEpoch = 8640000000000000; // 275760-09-13
|
|
|
|
|
const int _minMillisecondsSinceEpoch = -62135596800000; // 0001-01-01
|
|
|
|
|
|
2025-09-29 20:23:40 +05:30
|
|
|
DateTime? tryFromSecondsSinceEpoch(int? secondsSinceEpoch, {bool isUtc = false}) {
|
2025-09-03 00:50:49 +05:30
|
|
|
if (secondsSinceEpoch == null) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
final milliSeconds = secondsSinceEpoch * 1000;
|
|
|
|
|
if (milliSeconds < _minMillisecondsSinceEpoch || milliSeconds > _maxMillisecondsSinceEpoch) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
2025-09-29 20:23:40 +05:30
|
|
|
return DateTime.fromMillisecondsSinceEpoch(milliSeconds, isUtc: isUtc);
|
2025-09-03 00:50:49 +05:30
|
|
|
} catch (e) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
}
|