android平台对sqlite数据库的时间字段的增加与更新

最近写一个android平台的游戏,需要保留历史记录,使用sqlite数据库保存,其中涉及到“时间”的记录需求,sqlite数据库有datetime类型,这里记录一下相关操作。

时间,一般是以当前时间到某个时间的差值表示,通常的“某个时间”用的是“1970 年 1 月 1 日(00:00:00 GMT)”。网络上有篇文章说了三种方式,这里先做翻译(不过,我测试过不成功,在最后记录我自己可以使用的方式)

第一种方式:使用数据库自身的时间戳机制,也就是在创建表时使用default关键字,比如:create table t_score(_id integer primary key autoincrement,lastupdate datetime default current_timestamp);

 

第二种方式:在sql语句中使用datetime()函数。

 

第三种方式:使用android提供的ContentValues进行操作。文章给出的例子是:

private String getDateTime() {
        SimpleDateFormat dateFormat = new SimpleDateFormat(
                "yyyy-MM-dd HH:mm:ss", Locale.getDefault());
        Date date = new Date();
        return dateFormat.format(date);
}
//下面使用了上面的函数
ContentValues values = new ContentValues();

values.put('username', 'ravitamada');
values.put('created_at', getDateTime());
// insert the row
long id = db.insert('users', null, values);

上面的英文原文在这里

第一、二中是我最新采用的方式,但是没有成功,显示的时间有很大问题,最后使用了与第三种类似的方法。所不同的是,我在保存和读取时间时,采用long值表示,也就是上面的values.put('created_at', getDateTime());

我是使用了values.put('created_at', System.currentTimeMillis());

而,在获取时,也是直接使用了getLong方法获取即可。

综上,效率上,我的更优,因为少了格式转换。

» 本文链接地址:https://www.xidige.com/654

打开支付宝扫一扫,即可进行扫码打赏哦

扫码支持
扫码打赏,你说多少就多少

标签:

分享到:

扫一扫 在手机阅读、分享本文

上一篇: 下一篇:
评论区0人评论957人参与

电子邮件地址不会被公开。 必填项已用*标注

*

loading

赞助商广告