如何在Dart和Flutter中将时间四舍五入到最近的四分之一小时?

时间:2020-03-16 11:42:20

标签: datetime flutter dart

我有一个 DateTime ,我想将其向下舍入到15秒(或另一个间隔)。

例如 “ 2020-03-16 12:23: 53.756 ” 至 “ 2020-03-16 12:23: 45.000

和 “ 2020-03-16 12:24: 01.1234 ” 至 “ 2020-03-16 12:24: 00.000

2 个答案:

答案 0 :(得分:6)

您可以在Dart和Flutter中使用DateTime扩展名进行此操作:

@login_required
def eadmin(request):
    transactions = Product.objects
    return render(request, 'accounts/index.html', {'transactions': transactions})

用法:

class Product(models.Model):
    details = models.CharField(max_length=1000)
    opname = models.CharField(max_length=100)
    pub_date = models.DateTimeField()
    amount = models.IntegerField()
    contactemail = models.TextField()
    purpose = models.TextField()
    poster = models.ForeignKey(User, on_delete=models.CASCADE)
    transactionid = models.CharField(max_length=6)

    def __str__(self):
        return self.transactionid

输出:“ 2020-03-16 12:23:45.000”

      <table class="table">
        <thead>
          <tr>
            <th scope="col">#</th>
            <th scope="col">XXXXX</th>
            <th scope="col">Amount €</th>
            <th scope="col">Transaction ID</th>
          </tr>
        </thead>
        {% for transaction in transactions.all %}
        <tbody>
            <tr>
            <th scope="row">-</th>
            <td>{{ transaction.opname }}</td>
            <td>{{ transaction.amount }}</td>
            <td>{{ transaction.transactionid }}</td>
            </tr>
        </tbody>
       {% endfor %}
      </table>

输出:“ 2020-03-16 12:00:00.000”

答案 1 :(得分:0)

以上回答的补充(请记住,为扩展名提供一个名称,并提防使用 this。)。

extension DateTimeExtension on DateTime {
  DateTime roundDown({Duration delta = const Duration(days: 1)}) {
    return DateTime.fromMillisecondsSinceEpoch(
        millisecondsSinceEpoch - millisecondsSinceEpoch % delta.inMilliseconds);
  }
}