I have a class which is containing Data related to different teams. There is a column in db named as "LastMessageAt" and its data type is String. I am getting this field as String from API and I am storing it as String in Room Database. Now I want to get Sorted Teams Data from my Database, Sorting should be on the basis of "LastMessageAt" column. I am getting timestamp as string in the form of : "2022-07-18T12:12:40.223000Z"
How can I do this?
My Table class is:
@Entity(tableName = "CompanyTeam")
public class CompanyTeam implements Serializable {
@PrimaryKey
@NonNull
@ColumnInfo(name = "TeamId")
private String teamId;
@ColumnInfo(name = "TeamName")
private String teamName;
@ColumnInfo(name = "LastMessageAt")
private String lastMessageAt;
@NonNull
public String getTeamId() {
return teamId;
}
public void setTeamId(@NonNull String teamId) {
this.teamId = teamId;
}
public String getTeamName() {
return teamName;
}
public void setTeamName(String teamName) {
this.teamName = teamName;
}
public String getCompanyId() {
return companyId;
}
public void setCompanyId(String companyId) {
this.companyId = companyId;
}
public String getLastMessageAt() {
return lastMessageAt;
}
public void setLastMessageAt(String lastMessageAt) {
this.lastMessageAt = lastMessageAt;
}
}
don’t store dates as strings, use a proper date datatype and write
TypeConvertersfor your LastMessageAt like below :and your model should look like this :
then query like this :