当前位置: 首页 > 知识库问答 >
问题:

根据firebase节点中保存的时间戳计算日期差

谢英光
2023-03-14

在我的应用程序中,它使用android studio和firebase数据库,卖家只要支付注册费,就可以订阅特定的商店(例如面包店)两年。注册时,我正在将注册日期和时间保存到firebase实时数据库中,如图所示:

两年后,我想向卖家展示一个祝酒词,表示订阅期已过。为此,我需要减去注册日期(我可以从fire base节点中获取)和当前日期,我知道如何获得如下所示的当前日期

  Calendar calForDate = Calendar.getInstance(); 
    SimpleDateFormat currentDateFormat = new SimpleDateFormat("MMM dd, yyyy"); 
    currentDate = currentDateFormat.format(calForDate.getTime());
    Calendar calForTime = Calendar.getInstance(); 
    SimpleDateFormat currentTimeFormat = new SimpleDateFormat("hh:mm a");
    currentTime = currentTimeFormat.format(calForTime.getTime()); 
    long timestamp= System.currentTimeMillis();

我只想从上面的代码中减去当前日期,并检查730天(365*2)是否结束。

共有1个答案

艾泽语
2023-03-14

因为你存储了面包店的时间戳,所以你不需要日历。相反,你可以简单地从以毫秒为单位的当前时间开始,从中减去两年的毫秒:

long nowInMs = System.currentTimeMillis();
long twoYearsInMs = 2 * 365 * 24 * 60 * 60 * 1000;
long twoYearsAgoInMs = nowInMs - twoYearsInMs;

然后,您可以使用这个twoyearsagoins查询数据库,如下所示:

DatabaseReference sellerRef = FirebaseDatabase.getInstance().getReference("SellerRegFee");
Query query = sellerRef.orderByChild("Bakery/timestamp").endAt(twoYearsAgoInMs);
query.addListenerForSingleValueEven(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        for (DataSnapshot sellerSnapshot: dataSnapshot.getChildren()) {
            Log.i("seller", sellerSnapshot.getKey());
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException();
    }
}
 类似资料:
  • 我正在为我的聊天应用程序使用firebase。在聊天对象中,我使用方法添加时间戳。 请就这个问题提出解决办法

  • 我已经在我的应用程序中添加了一个按钮。当我点击按钮时,当前时间保存到SP。但我想把这个保存到我的firebase数据库里。我怎么能这么做?

  • 问题内容: 我想以小时/分钟/秒为单位计算两个日期之间的差异。 我的代码在这里有一个小问题: 这应该产生: 但是我得到这个结果: 有人可以在这里看到我在做什么错吗? 问题答案: 尝试 注意:这假定diff是非负数。

  • 但问题是我无法将数据从Firebase转换为Local。save方法将转换为Timestamp fine。 任何解决办法。

  • 我在应用程序yml中启用了以下功能 实体类字段如下所示 在设置日期时,我正在使用 我如何实现这个Spring JPA和Java8类? 谢谢

  • 本文向大家介绍PHP中UNIX时间戳和日期间的转换与计算实例,包括了PHP中UNIX时间戳和日期间的转换与计算实例的使用技巧和注意事项,需要的朋友参考一下 UNIX时间戳是保存日期和时间的一种紧凑简洁的方法,是大多数UNIX系统中保存当前日期和时间的一种方法,也是在大多数计算机语言中表示日期和时间的一种标准格式。以32位整数表示格林威治标准时间,例如,使用证书11230499325表示当前时间的时