datetime - Dart -两个不同的日期在天中产生相同的差异

标签 datetime dart

我一直在做一个 flutter 朔迷离的项目,并尝试在发现以下行为时按特定日期筛选结果。

main() {
  String v = '2020-08-03';
  int ms0 = 1596249000000;
  int ms1 = 1596368040000; // 
  int ms2 = 1596465736799;
  int ms3 = 1596472120778; //
  int ms4 = 1596623965588;
  
  print(DateTime.fromMillisecondsSinceEpoch(ms0));
  print(DateTime.fromMillisecondsSinceEpoch(ms1));
  print(DateTime.fromMillisecondsSinceEpoch(ms2));
  print(DateTime.fromMillisecondsSinceEpoch(ms3));
  print(DateTime.fromMillisecondsSinceEpoch(ms4));

 print(DateTime.parse(v).difference(DateTime.fromMillisecondsSinceEpoch(ms0)).inDays); 
 print(DateTime.parse(v).difference(DateTime.fromMillisecondsSinceEpoch(ms1)).inDays);
 print(DateTime.parse(v).difference(DateTime.fromMillisecondsSinceEpoch(ms2)).inDays);
 print(DateTime.parse(v).difference(DateTime.fromMillisecondsSinceEpoch(ms3)).inDays);
 print(DateTime.parse(v).difference(DateTime.fromMillisecondsSinceEpoch(ms4)).inDays);
}
上面的代码产生以下结果
2020-08-01 10:30:00.000
2020-08-02 19:34:00.000
2020-08-03 22:42:16.799
2020-08-04 00:28:40.778
2020-08-05 18:39:25.588
1
0
0
-1
-2
我不明白变量“ms1”和“ms2”将如何产生相同的差异“inDays”。有人可以帮忙提供一些指示吗?谢谢你们。

最佳答案

全天24小时,全时60分钟
如果差异小于24小时1秒或1微秒,依此类推-则不计算整日
回到你的例子2020-08-03表示一天的开始时间00:00:00.000并且不同于2020-08-02 19:34:00.000仅4h,26m2020-08-03 22:42:16.799仅22h,42m,16s,799ms
这个测试说明

  test('datetime difference in days', () {
    final date = DateTime.parse('2020-08-03');
    final date1 = DateTime.fromMillisecondsSinceEpoch(1596368040000);
    final date2 = DateTime.fromMillisecondsSinceEpoch(1596465736799);

    print(date);  // 2020-08-03 00:00:00.000
    print(date1); // 2020-08-02 17:34:00.000
    print(date2); // 2020-08-03 20:42:16.799

    expect(date1.difference(date).inDays, equals(0));
    expect(date1.difference(date).inHours, equals(-6));

    expect(date2.difference(date).inDays, equals(0));
    expect(date2.difference(date).inHours, equals(20));
  });

关于datetime - Dart -两个不同的日期在天中产生相同的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63277048/

相关文章:

java - 替代 Java.sql.time

python - 在午夜分割数据帧条目

sql - 在DateTime字段中的两个日期之间进行选择-SQL Server

dart - 如何在 Flutter 小部件测试中等待 future 完成?

dart - Dart错误:一个相等表达式不能是另一个相等表达式的操作数

Python timedelta 跨越 DST 转换返回不正确的结果?

javascript - 如何在 Javascript 中将日期转换为其他时区

firebase - 未定义类 'FirebaseUser'

flutter - 升级flutter SDK后我遇到了以下问题

Flutter/Dart : Get URL from Shared Preferences Widget to use in Image. 网络小部件