1

我想在类型为 Date 而不是 String 的表中插入日期(因为我必须稍后对其进行排序)。我不能使用内容值的函数 put(),因为它只需要 (String, String) 参数,而不是日期。那么如何在表格行中插入系统的当前日期?请帮忙。

 public long createEntry (String name, String db_dr, int amount, Date dt){
            ContentValues values = new ContentValues ();``
            values.put(DbOpenHelper.ENTRY_NAME,  name );
            values.put(DbOpenHelper.DR_CR, db_dr );
            values.put(DbOpenHelper.ENTRY_AMOUNT, amount);
            values.put(DbOpenHelper.DATE, dt); // function put defined for (string, string)
            long insertid= database.insert(DbOpenHelper.TABLE_ENTRIES, null, values);
            return insertid;
        }
4

2 回答 2

0

SQLite不支持 Date 数据类型。相反,您可以将日期存储在 Unix 时间中。例如,如果日期存储在 中Calendar,请使用getTimeInMillis

于 2013-04-20T21:30:16.337 回答
0

您可以将日期插入为毫秒。正如您的评论所说,您能够使用 milis 存储日期并且面临检索它并将其转换为日期的问题。这是一个例子

    Calendar calendar = new GregorianCalendar();
    calendar.setTimeInMillis(date_in_milis);
    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int date = calendar.get(Calendar.DATE);
    int day = calendar.get(Calendar.DAY_OF_WEEK);

它将年、月、日和日设置为整数。因此,通过一些计算,如果您还想获取月/日名称,您可以将其格式化为字符串。

于 2013-04-21T03:07:21.673 回答