【问题标题】:Dart find diff between string time and now date in secondsDart 以秒为单位查找字符串时间和现在日期之间的差异
【发布时间】:2021-02-24 16:17:28
【问题描述】:

我有一个字符串 "HH:mm",我想找出该字符串与现在时间之间的差异(以秒为单位)。

例如,如果现在时间是2021-02-24 18:00:00.000000,而我的字符串是"00:30",那么结果应该是23400 秒。

我如何在飞镖中做到这一点?

谢谢!

【问题讨论】:

  • 到目前为止你尝试过什么?为什么是 23400 而不是 63000?
  • 感谢您的回答...我仍在努力将我的字符串解析为即将到来的 DateTime 以区分时间。它是 23,400,因为字符串表示即将到来的时间。这意味着现在时间和字符串时间之间有6.5小时。
  • 是的,我知道 23400 秒是 6.5 小时。我只是想了解您如何知道时间总是表示较晚的时间。再说了,怎么知道是后天的那个时候,而不是三天后的那个时候?如果字符串是 19:00,你怎么知道距离你的“现在”还有 1 小时,而不是 25 小时?
  • 我的用户选择了即将到来的 24 小时中的一个小时。我不需要验证它,它只是一个事实。
  • 好的,我会添加基本的构建块作为答案,希望你能从中管理!

标签: flutter dart


【解决方案1】:

更新答案,使其更符合您的问题。

好的,鉴于我从 cmets 中了解到的答案,这里有一个建议。你当然可以减少它的表现力并将行组合起来。

  final now = DateTime.parse('2021-02-24 18:00:00.000000');
  String time = '00:30';

  final dateFormat = DateFormat('yyyy-MM-dd');
  final todayString = dateFormat.format(now);
  String stringToParse = '$todayString $time:00';
  final parsedDateTime = DateTime.parse(stringToParse);
  final timeDifference = parsedDateTime.difference(now);
  int seconds = timeDifference.inSeconds > 0
      ? timeDifference.inSeconds
      : timeDifference.inSeconds + 86400;

  print(seconds.toString());

将打印23400

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-13
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-10
    • 2020-11-28
    • 2018-08-08
    相关资源
    最近更新 更多