在数据库方面,checkInTime
和checkOutTime
的类型为TIMESTAMP
在我的java代码中,checkInTime
和checkOutTime
的类型为java.sql.Timestamp
为了将记录插入db,我正在使用这段代码:
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 ontentValues
的put方法会在其第二个参数中接受类型java.sql.Timestamp
。请建议如何在这种情况下传递java.sql.Timestamp
,以便我也可以删除编译错误。
谢谢,
答案 0 :(得分: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));
答案 1 :(得分:0)
如果checkInTime和checkOutTime是bith时间戳,那么在将thm存储到contentvalue之前只需转换为毫秒并存储它们,然后在重新转换时将它们重新转换为所需的格式。因为ContentValue不接受timeStamps所以只需转换并存储,这样你就不会得到任何补偿错误。