3

在数据库端,checkInTime并且checkOutTime是类型TIMESTAMP

在我的java代码中也是,checkInTime并且checkOutTime是类型java.sql.Timestamp

为了将记录插入数据库,我正在使用这段代码:

1. ContentValues contentValues=new ContentValues();

    2. contentValues.put(USER_ID, userId);
    3. contentValues.put(ROOM_ID, roomId);
    4. contentValues.put(CHECK_IN, checkInTime);
    5. contentValues.put(CHECK_OUT, checkOutTime);

    6. return database.insert(MRM_BOOKING_DETAILS_TABLE, null, contentValues);

但是我在第 4 行和第 5 行遇到编译错误,因为他们不期望 java.sql.Timestamp 类型的东西

我看不到任何 C 的 put 方法将在其第二个参数中ontentValues接受类型。java.sql.Timestamp请建议在这种情况下如何通过,java.sql.Timestamp以便我也可以删除编译错误。

谢谢,

4

2 回答 2

7

我建议你使用DATETIME而不是TIMESTAMP. 它在处理日期和时间时更为通用。

此外,您可以在插入或读取数据库时使用 SimpleDateFormat 解析 DATETIME 值。

final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

更新:

尝试如下操作:

final SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss.SSS");

contentValues.put(CHECK_IN, parser.format(checkInTime));
contentValues.put(CHECK_OUT, parser.format(checkOutTime));
于 2012-04-15T11:40:05.033 回答
0

如果 checkInTime 和 checkOutTime 是第一个时间戳,那么在将 thm 存储到 contentvalue 之前,只需将它们转换为毫秒并存储它们,然后再将它们重新转换为您需要的格式。因为 ContentValue 不接受时间戳所以只需转换和存储,这样你就不会得到任何编译错误。

于 2012-04-15T09:49:43.227 回答