Flutter: добавление даты и времени из двух разных переменных для преобразования в UTC

#flutter #dart

#трепетание #дротик

Вопрос:

Я хочу объединить эти две переменные даты и времени и вызвать другую переменную var toUTC .

У меня есть две переменные для даты и времени из Date Picker и Time Picker .

 var selectedDate;
var selectedTime;

print(selectedDate); // 2021-02-06 00:00:00.000
print(selectedTime); // 1:15:00.000000
 

У var selectedDate него есть время, но я не хочу этим пользоваться. Я хочу заменить его значением from var selectedTime .

То, что я пытаюсь сделать, это

 print(toUTC) // 2021-02-06 1:15:00.00000 <---- merge selectedDate and selectedTime
 

для преобразования во UTC время.

Я пытался взять только 2021-02-06 и объединить с selectedTime , но мне не удалось преобразовать в UTC .

Ответ №1:

 final toUTC = DateTime(selectedDate.year, selectedDate.month, selectedDate.year, 
selectedTime.hour, selectedTime.minute);
 

Или, если это то, что вам нужно будет делать регулярно, вы могли бы сделать для этого расширение. Приведенное ниже делает это, передавая час и минуту в качестве отдельных переменных, но вы можете изменить это на другое значение даты и времени, если хотите.

 extension DateTimeExtensions on DateTime {

 /// Creates a new date time with the given date but with the time
 /// specified from [time]
 DateTime withTime([int hour = 0, int minute = 0]) =>
     DateTime(this.year, this.month, this.day, hour, minute);

}
 

Для преобразования в UTC существует метод toUtc() в классе DateTime. Я не уверен, что вы просто не заметили этого или есть проблема, которую я не вижу?

Комментарии:

1. Я пытался использовать .toUtc() . Но я изо всех сил пытался объединить два значения! ваше здоровье