[英]How to retrieve current date and day_of_month from date in hsqldb for listing upcoming birthdays
[英]How to retrieve data from firebase where the value of a date is 1 month ago from current date
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Calendar c = Calendar.getInstance();
String date = sdf.format(c.getTime());
我使用此代码来获取当前时间。 但是我想在1个月前从firebase获取所有数据。 我必须添加什么代码? 我用这段代码检索所有内容而没有比较任何东西
mDatabasetamu.orderByChild("tglkeluar").equalTo(date).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
Tamu tamu = snapshot.getValue(Tamu.class);
String nama = tamu.getNama();
String checkin = tamu.getTglmasuk();
String checkout = tamu.getTglkeluar();
String kamar = tamu.getKamar();
txtnama.append(nama + "\n \n");
txtcheckin.append(checkin +"\n \n" );
txtcheckout.append(checkout + "\n \n");
txtkamar.append(kamar + "\n \n");
}
}
thankss
首先,如果要以字符串表示形式存储和查询日期,则应将其存储在ISO 8601标准中 ,该标准使字符串日期的字典顺序也按时间顺序排列。 因此,您应该存储yyyy-mm-dd HH:mm
而不是dd-MM-yyyy HH:mm
yyyy-mm-dd HH:mm
。
但是请注意,将日期存储为字符串,因为您的案例不存储时区。 考虑使用Firestore(将其作为Timestamp数据类型)或将其存储为字符串,请确保还存储完整的时间戳格式,包括时区: yyyy-mm-ddThh:mm:sszzzz
话虽如此,使用当前的日期格式,自从下一年之后,您将很难查询上个月的记录,并且您将获得结果中包含的旧记录。
但是,如果您将日期存储为yyyy-mm-dd HH:mm
则可以执行以下操作以获取上个月(从一个月前到今天)的所有访客访问。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
String today = sdf.format(Calendar.getInstance().getTime());
String oneMonthAgo = sdf.format(Calendar.getInstance().add(MONTH, -1).getTime());
mDatabasetamu
.orderByChild("tglkeluar")
.startAt(oneMonthAgo )
.endAt(today)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot snapshot : dataSnapshot.getChildren()){
Tamu tamu = snapshot.getValue(Tamu.class);
String nama = tamu.getNama();
String checkin = tamu.getTglmasuk();
String checkout = tamu.getTglkeluar();
String kamar = tamu.getKamar();
txtnama.append(nama + "\n \n");
txtcheckin.append(checkin +"\n \n" );
txtcheckout.append(checkout + "\n \n");
txtkamar.append(kamar + "\n \n");
}
}
最后,如果您来自SQL背景,那么以下是一些不错的视频,可以从Firebase入门: 适用于SQL开发人员的Firebase数据库
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.