安卓 sqlite 保存日期
时间: 2024-12-06 07:22:42 浏览: 42
在Android中,SQLite数据库通常用来存储结构化的数据,包括日期。如果你需要保存日期,可以将其作为字符串、INTEGER类型(整数表示时间戳)或者REAL类型(浮点数用于存储精确的时间)存入。
1. **字符串形式**:最直观的方式就是将日期转换成可读的字符串(如"yyyy-MM-dd HH:mm:ss"),然后存入VARCHAR字段。但在查询时你需要手动解析这个字符串。
2. **INTEGER(时间戳)**:你可以使用系统提供的`System.currentTimeMillis()`获取当前时间戳(以毫秒为单位),然后存储为INT。这更便于进行时间比较和计算,但显示给用户时可能不够直观。
3. **REAL(浮点数)**:对于需要精确到微秒的时间,可以使用REAL类型。但是请注意,精度可能会因为浮点数的舍入误差而丢失。
在Android中,处理日期通常推荐使用Java 8的新日期时间API(java.time包),比如LocalDate、LocalDateTime等。如果存储这些对象,先将其转换为Unix时间戳(long类型)再保存,这样在查询时也相对简单。
```java
// 示例代码
try {
LocalDate date = LocalDate.now();
long timestamp = date.atStartOfDay(ZoneId.systemDefault()).toInstant().toEpochMilli(); // 获取本地时间戳
// 插入数据库
SQLiteStatement stmt = db.compileStatement("INSERT INTO table_name (date_column) VALUES (?)");
stmt.bindLong(1, timestamp);
stmt.executeInsert();
} catch (SQLException e) {
e.printStackTrace();
}
```
阅读全文
相关推荐


















