我使用ServerValue.TIMESTAMP
Android 设置添加到 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] 删除。
我来说两句