Size: a a a

Flutter Developers — русскоговорящее сообщество

2021 March 03

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Наверное это изза перевода на летнее время
источник

AT

Artem Tkachenko in Flutter Developers — русскоговорящее сообщество
а что millisecondsSinceEpoch выдаст?
источник

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
flutter: newDate3 1616792400000
flutter: newDate4 1614722400000
источник

AT

Artem Tkachenko in Flutter Developers — русскоговорящее сообщество
btw
* For example, in Australia, similar code using local time instead of UTC:
*
* * var berlinWallFell = new DateTime(1989, DateTime.november, 9);
* var dDay = new DateTime(1944, DateTime.june, 6);
* Duration difference = berlinWallFell.difference(dDay);
* assert(difference.inDays == 16592);
*
* will fail because the difference is actually 16591 days and 23 hours, and
* [Duration.inDays] only returns the number of whole days.

думаю
* var berlinWallFell = new DateTime(1989, DateTime.november, 9);
* var dDay = new DateTime(1944, DateTime.june, 6);
* Duration difference = berlinWallFell.difference(dDay);
* assert(difference.inDays == 16592);
*

* will fail because the difference is actually 16591 days and 23 hours, and
* [Duration.inDays] only returns the number of whole days.

думаю тот самый случай
источник

AT

Artem Tkachenko in Flutter Developers — русскоговорящее сообщество
просто .hours скипает и все
источник

AT

Artem Tkachenko in Flutter Developers — русскоговорящее сообщество
но у меня все как надо, iphone


var newDate3 = DateTime(2021, 3, 27, 0, 0, 0, 0);
var newDate4 = DateTime(2021, 3, 03, 0, 0, 0, 0);
var res1 = newDate3.difference(newDate4).inDays;

var newDate5 = DateTime(2021, 3, 26, 0, 0, 0, 0);
var newDate6 = DateTime(2021, 3, 03, 0, 0, 0, 0);
var res2 = newDate5.difference(newDate6).inDays;

print('res1 = $res1 res2 = $res2');


res1 = 24 res2 = 23
источник

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Как я могу это обойти, потому что проблема конкретно только с месяцем, когда есть перевод часов
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Eugene Alitz
Как я могу это обойти, потому что проблема конкретно только с месяцем, когда есть перевод часов
Вычитать дни
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Вычитать миллисекунды с округдением в большую сторону
источник

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Artem Tkachenko
но у меня все как надо, iphone


var newDate3 = DateTime(2021, 3, 27, 0, 0, 0, 0);
var newDate4 = DateTime(2021, 3, 03, 0, 0, 0, 0);
var res1 = newDate3.difference(newDate4).inDays;

var newDate5 = DateTime(2021, 3, 26, 0, 0, 0, 0);
var newDate6 = DateTime(2021, 3, 03, 0, 0, 0, 0);
var res2 = newDate5.difference(newDate6).inDays;

print('res1 = $res1 res2 = $res2');


res1 = 24 res2 = 23
это от locale зависит
источник

🅵

🅵🅾️🆇 in Flutter Developers — русскоговорящее сообщество
Мильёрдом различных способов
источник

ЮП

Юрий Петров... in Flutter Developers — русскоговорящее сообщество
Eugene Alitz
это от locale зависит
У вас какой формат времени?
источник

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Израиль
источник

ЮП

Юрий Петров... in Flutter Developers — русскоговорящее сообщество
timezone | Dart Package
https://pub.dev/packages/timezone
источник

ЮП

Юрий Петров... in Flutter Developers — русскоговорящее сообщество
Eugene Alitz
Израиль
Попробуйте
источник

AT

Artem Tkachenko in Flutter Developers — русскоговорящее сообщество
Eugene Alitz
то вывод будет:
flutter: newDate3 2021-03-26 21:00:00.000Z
flutter: newDate4 2021-03-02 22:00:00.000Z
flutter: res1 23
вот же ответ на вопрос)

более тго если взять ваши
flutter: newDate3 1616792400000
flutter: newDate4 1614722400000

то получится для моего GMT
newDate3 = 2021-03-26 23:00:00.000
newDate4 = 2021-03-03 00:00:00.000
источник

AT

Artem Tkachenko in Flutter Developers — русскоговорящее сообщество
не забывайте про utc и все будет хорошо
источник

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Ок, спасибо!
источник

AT

Artem Tkachenko in Flutter Developers — русскоговорящее сообщество
DateTime(2021, 3, 27, 0, 0, 0, 0) - загляните в конструктор. Он создает дату с локальной таймзоной, используйте DateTime.utc(...) и все
источник

EA

Eugene Alitz in Flutter Developers — русскоговорящее сообщество
Artem Tkachenko
DateTime(2021, 3, 27, 0, 0, 0, 0) - загляните в конструктор. Он создает дату с локальной таймзоной, используйте DateTime.utc(...) и все
O, спасибо - это решило проблему
источник