FhirDateTime.fromDateTime constructor

FhirDateTime.fromDateTime(
  1. DateTime dateTime, [
  2. DateTimePrecision precision = DateTimePrecision.FULL
])

Implementation

factory FhirDateTime.fromDateTime(DateTime dateTime,
    [DateTimePrecision precision = DateTimePrecision.FULL]) {
  final String dateTimeString = dateTime.toIso8601String();
  final int len = <int>[4, 7, 10, dateTimeString.length][precision.index];

  if (dateTime.isUtc || precision != DateTimePrecision.FULL) {
    return FhirDateTime._(
        dateTimeString.substring(0, len), dateTime, true, precision, null);
  } else {
    return FhirDateTime._(
        '$dateTimeString${dateTime.timeZoneOffset.isNegative ? '-' : '+'}'
        '${(dateTime.timeZoneOffset.abs().inMinutes / 60).round().toString().padLeft(2, "0")}:'
        '${(dateTime.timeZoneOffset.inMinutes % 60).toString().padLeft(2, "0")}',
        dateTime,
        true,
        precision,
        null);
  }
}