最初使用 ServerValue.TIMESTAMP 和 Android 设置时,如何从 Firebase 数据库中检索本地 TIMESTAMP?

亚历克斯·马莫

我使用ServerValue.TIMESTAMPAndroid 设置添加到 Firebase 数据库列表中的项目的数据和时间。我知道它最初设置为 a Map,当我们检索它时,我们将其检索为 aLong并且为了显示日期和时间,我使用了如下所示的方法:

public static String getTimeDate(long timeStamp){
    try{
        DateFormat dateFormat = getDateTimeInstance();
        Date netDate = (new Date(timeStamp));
        return dateFormat.format(netDate);
    }
    catch(Exception e){
        return "date";
    }
}

因为我距离服务器 7 小时,所以显示日期和时间的时间是 7 小时前。使用时如何显示正确的日期和时间ServerValue.TIMESTAMP这有什么可能吗?

这是我显示时间和日期的方式:

ValueEventListener listener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    Map<String, Object> map = (Map<String, Object>) dataSnapshot.getValue();
    Long timeStampLong = (Long) map.get("timeStamp");
    String timeStamp = getTimeDate(timeStampLong);
    arrayList.add(timeStamp);

    arrayAdapter = new ArrayAdapter<String>(getActivity(), R.layout.list, arrayList);
    listView.setAdapter(arrayAdapter);
}

@Override
public void onCancelled(DatabaseError databaseError) {}
};
ref.addListenerForSingleValueEvent(listener);

提前致谢!

鲍勃·斯奈德

此代码片段格式化本地时区的时间。您可以尝试使用它作为您需要的基础。我不确定为什么您的代码不起作用。你可以发布DateFormat你正在使用的吗?

    DatabaseReference timeRef = FirebaseDatabase.getInstance().getReference("time-test");

    timeRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            if (dataSnapshot.exists()) {
                long time = dataSnapshot.getValue(Long.class);
                String s = DateFormat.getDateTimeInstance().format(new Date(time));
                Log.d(TAG, "onDataChange: " + s);
            } else {
                Log.d(TAG, "onDataChange: No data");
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            throw databaseError.toException();
        }
    });

    timeRef.setValue(ServerValue.TIMESTAMP);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章