将ServerValue.TIMESTAMP转换为日期 [英] Convert ServerValue.TIMESTAMP To date

查看:24
本文介绍了将ServerValue.TIMESTAMP转换为日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已按下按钮将当前日期和时间保存到我的Firebase数据库中.

I have put a button to save the current Date and Time to My Firebase Database .

private void saveTime() {
        DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
        rootRef.child(Uid).child("time").setValue(ServerValue.TIMESTAMP);
    }

我正在尝试将服务器日期与我保存在数据库中的保存日期进行比较.因此,请帮助我进行比较.

I am trying to compare the server Date with My saved Date which i putted in my database . So please help me to compare it.

 private void Compare() {

        DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
        DatabaseReference ezzeearnRef = rootRef.child(Uid).child("time");
        ValueEventListener eventListener = new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if (dataSnapshot.exists()) {
                    Long time = dataSnapshot.getValue(Long.class);
                    assert time != null;
                    Date oldDate = new Date(time);
                    GregorianCalendar oldCalendar = new GregorianCalendar();
                    oldCalendar.setTime(oldDate);
                        GregorianCalendar newCalendar = new GregorianCalendar();


                Map<String, String> now = ServerValue.TIMESTAMP;
                newCalendar.setTime((Date) now);

                    if (newCalendar.get(Calendar.DATE) != oldCalendar.get(Calendar.DATE) ||
                            newCalendar.get(Calendar.MONTH) != oldCalendar.get(Calendar.MONTH) ||
                            newCalendar.get(Calendar.YEAR) != oldCalendar.get(Calendar.YEAR)

                            ) {
                        // new day starts toast
                    }


                }else{
                    // toast
                }
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        };
        ezzeearnRef.addValueEventListener(eventListener);

    }

推荐答案

您正在正确地从数据库中检索时间戳.要将时间戳(即服务器时间戳)与累计时间进行比较,可以使用以下代码行与当前时间进行比较:

You are correctly retrieving the timestamp from your database. To compare that timestamp, which is the server timestamp, with the accualt time, you can comparate with the current using the following line of code:

Long currentTimeMillis = System.currentTimeMillis();

然后您可以使用一个简单的if语句:

Then you can use a simple if statement:

if(time < currentTimeMillis) {
    //Do something
} else {
    //Do something else
}

这篇关于将ServerValue.TIMESTAMP转换为日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆