LocalDateTime.dateTime constructor
LocalDateTime.dateTime(
- DateTime dateTime, [
- CalendarSystem? calendar
Converts a DateTime of any kind to a LocalDateTime in the specified or ISO calendar. This does not perform
any time zone conversions, so a DateTime with a DateTime.isUtc == true
will still have the same day/hour/minute etc - it won't be converted into the local system time.
dateTime
: Value to convert into a Time Machine local date and timecalendar
: The calendar system to convert into, defaults to LocalDateTime in the ISO calendar.
Returns: A new LocalDateTime with the same values as the specified DateTime.
Implementation
factory LocalDateTime.dateTime(DateTime dateTime, [CalendarSystem? calendar]) {
int ns;
int days;
if (Platform.isWeb) {
var ms = dateTime.millisecondsSinceEpoch + dateTime.timeZoneOffset.inMilliseconds;
days = ms ~/ TimeConstants.millisecondsPerDay;
ms -= days * TimeConstants.millisecondsPerDay;
if (ms < 0) days--;
ns = TimeConstants.nanosecondsPerMillisecond *
(ms % TimeConstants.millisecondsPerDay);
} else {
var us = dateTime.microsecondsSinceEpoch + dateTime.timeZoneOffset.inMicroseconds;
days = us ~/ TimeConstants.microsecondsPerDay;
us -= days * TimeConstants.microsecondsPerDay;
if (us < 0) days--;
ns = TimeConstants.nanosecondsPerMicrosecond *
(us % TimeConstants.microsecondsPerDay);
}
return LocalDateTime.localDateAtTime(
LocalDate.fromEpochDay(days, calendar),
ILocalTime.trustedNanoseconds(ns));
}