首页 > 解决方案 > 不知道为什么 typeConvertor 不起作用

问题描述

所以我想在我的表中放入一个 startDate 和一个 endDate,问题是由于某种原因这些字段没有考虑到我的 typeConverter 或者它不好,我不知道。我的问题可能是什么?

我的表:

@Entity(tableName = "bidObjects",foreignKeys = @ForeignKey(entity = User.class, parentColumns = "username", childColumns = "highestBidder", onDelete = CASCADE))
public class BidObject implements Parcelable,Serializable {
    @PrimaryKey
    private int id;
    private String name;
    private double startingPrice;
    private String Description;
    private int imageName;

    @TypeConverters(DateConvertor.class)
    private Date startDate;

    @TypeConverters(DateConvertor.class)
    private Date endDate;

    //The foreign key

    private String highestBidder;
    private double highestBid;

我的转换器:

public class DateConvertor {
  public static DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm");

  @TypeConverter
  public static Date fromDate(String value) {
    if (value != null) {
      try {
        return format.parse(value);
      } catch (Exception e) {
        e.printStackTrace();
      }
      return null;
    } else {
      return null;
    }
  }
}

标签: javaandroid

解决方案


这不是您问题的确切解决方案,但您可以做的一件事是使用 Unix 时间,这样您就不必担心转换Date对象。

像这样获取unix时间:

long unixTime = System.currentTimeMillis() / 1000L;

并存储该值而不是Date对象。

您可以在此处阅读有关 unix 时间的更多信息。


推荐阅读