如何在Android的Sqlite数据库中存储和检索日期和时间
我正在开发一个任务调度器/时间管理器应用程序,用于计算用户在日常活动中花费的时间。我需要从数据库中存储和检索用户活动的开始时间和结束时间。但由于数据库模式中的列太多,因此很难实现。我看不出有什么好办法。请建议一个更好的方法 这是代码如何在Android的Sqlite数据库中存储和检索日期和时间,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我正在开发一个任务调度器/时间管理器应用程序,用于计算用户在日常活动中花费的时间。我需要从数据库中存储和检索用户活动的开始时间和结束时间。但由于数据库模式中的列太多,因此很难实现。我看不出有什么好办法。请建议一个更好的方法 这是代码 package com.example.timejanitor; import android.content.Context; import android.database.SQLException; import android.database.sqlit
package com.example.timejanitor;
import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class Fixed_Task_Database extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "FixedTask.db";
public Fixed_Task_Database(Context context, String name,
CursorFactory factory, int version) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL("CREATE TABLE fixedtask(_id INTEGER PRIMARY KEY AUTOINCREMENT,taskName TEXT, sHour INTEGER, sMinute INTEGER,fHour INTEGER, fMinute INTEGER,taskDay INTEGER,taskMonth INTEGER, taskYear INTEGER )");
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS fixedtask");
onCreate(db);
}
}
SQLite文档说明: SQLite没有为存储日期和/或时间而预留的存储类。相反,SQLite的内置日期和时间函数能够将日期和时间存储为文本、实数或整数值: 文本为ISO8601字符串(“YYYY-MM-DD HH:MM:SS.SSS”) 实数和朱利安日一样,是指从公元前4714年11月24日格林威治正午开始的天数 整数表示Unix时间,自1970-01-01 00:00:00 UTC以来的秒数 应用程序可以选择以其中任何一种格式存储日期和时间,并使用内置的日期和时间函数在格式之间自由转换 您可以在程序中使用其中任何一个。请注意,Java内部还使用
long
表示日期时间值。它计算自1970-01-01 00:00:00 UTC以来的毫秒数,因此很容易转换为SQLite整数格式。阅读。