Разница в датах для флаттера - PullRequest
0 голосов
/ 01 февраля 2019

Играя во Флаттере, используя Дарт - я пытаюсь установить количество секунд между двумя датами.

Но по какой-то причине date1.difference(date2).inSeconds дает результат, который мне не нужен.Может быть, уже поздно, и я слишком устал, чтобы что-то здесь упустить:

Вот мой код: (то есть вывести операторы дат и предполагаемой разницы в секундах):

print(myDate);  // DateTime type
print(queryDate); // DateTime type
print(myDate.difference(queryDate).inSeconds);

Ирезультаты печати гласят:

2019-02-01 00:18:00.000Z     // myDate
2019-02-01 01:17:18.859431   // queryDate
41                           // supposedly difference in seconds...

Но не должно ли это быть намного больше, чем 41 секунда ????

Может быть, причина в различиях формата x.000Z и .859431?И если да, то почему?

Почему метод difference игнорирует минуты и часы?

1 Ответ

0 голосов
/ 01 февраля 2019

Я нашел решение:

Оказывается, queryDate был в другом формате (не уверен, что означает .859431 означает - может быть, кто-то может объяснить ...?)

По крайней мере, когда я делаю следующее, это работает:

DateTime queryDate2 = DateTime.utc(
                        queryDate.year,
                        queryDate.month,
                        queryDate.day,
                        queryDate.hour,
                        queryDate.minute,
                        queryDate.second);

Тогда мои операторы печати:

print(myDate);      // DateTime type in UTC
print(queryDate);   // DateTime type in .859431 format (??)
print(queryDate2);  // DateTime type in UTC
print(myDate.difference(queryDate2).inHours);
print(myDate.difference(queryDate2).inMinutes);
print(myDate.difference(queryDate2).inSeconds);

И результаты печати говорят:

2019-02-01 00:18:00.000Z    // myDate
2019-02-01 02:01:21.081575  // queryDate
2019-02-01 02:01:21.000Z    // queryDate2
-1                          // difference in hours   (now correct !)
-103                        // difference in minutes (now correct !)
-6201                       // difference in seconds (now correct !)

Да, больше нравится :) (часы, минуты и секунды верны).

Может быть, есть другой способ изменить дату на UTC?Любая идея приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...