国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Android關于SQLite的日期時間的存儲

lwx12525 / 1129人閱讀

摘要:最近一直在學習,由于的完全是半路出家,以前一直在用和之類的東西,對于時間和日期的處理,一直沒能弄得比較清楚。說清楚,中,原始的存儲只有以下幾種文檔。有符號整數,根據值的大小存儲在字節中。。浮點數,儲存為字節的浮點數。。

最近一直在學習Android,由于Xana的Java完全是半路出家,以前一直在用C#、C++和Python之類的東西,對于時間和日期的處理,一直沒能弄得比較清楚。

說清楚,SQLite

SQLite中,原始的存儲只有以下幾種(SQLite文檔):

NULL。只有null。

INTEGER。有符號整數,根據值的大小存儲在1-4字節中。

REAL。浮點數,儲存為8字節的IEEE浮點數。

TEXT。文字字符串,根據數據庫編碼存儲(UTF-8/UTF-16BE/UTF-16LE)

BLOB。純數據儲存。

Android和Java怎么做

Java中,時間和日期相關類主要是以下:

java.util.Date

和它的子類:

java.sql.Date

java.sql.Time

java.sql.Timestamp

以及相關的操作類:

java.util.Calendar

java.util.GregorianCalendar

用哪個?

其中,java.sql下的DateTime分別是“閹割”了的java.util.Date,而java.sql.Timestamp是強化版增加了微秒的java.util.Date,綜上所述,一般而言,用java.util.Date即可。

怎么用?

Java中日期和時間都是通過1970年后的毫秒數來儲存的,所以,我們在數據庫種只需要存儲日期時間的毫秒數即可,調用

java.util.Date date = new java.util.Date();
long datetime = date.getTime();

數據庫可以這么定義:

CREATE TABLE IF NOT EXISTS Journal(
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    content TEXT,
    writeTime INTEGER
);

這個地方其實我被折騰了很久,因為Java中用long來存儲毫秒數,即int64,但SQLite中只有INTEGER,后來看了文檔,這里的INTEGER是支持1-4字節,即可以存儲long

插入可以這么來:

java.util.Date writeTime = new java.util.Date();
ContentValues values = new ContentValues();
values.put("content", content);
values.put("writeTime", writeTime.getTime());

按日期查找……WTF?

日期區間查找

由于在數據庫內部使用了毫秒的方式儲存時間日期,那對于某一個日期,比如2015-07-21這一天的內容如何查找?

其實也就是查找2015-07-21 00:00:00到2015-07-22 00:00:00之間的數值,我們造一個就是了。

首先,獲取當前時間

Date now = new Date();

將它處理:

GregorianCalendar cal = new GregorianCalendar();
cal.setTime(now);
//可以根據需要設置時區
//cal.setTimeZone(TimeZone.getDefault());
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
//毫秒可根據系統需要清除或不清除
cal.set(Calendar.MILLISECOND, 0);
long startTime = cal.getTimeInMillis();

結束時間加上即可:

long endTime = startTime + 24 * 3600 * 1000;

現在就可以查詢了:

Cursor cursor = db.rawQuery("SELECT * FROM Journal WHERE “ +
    ”writeTime>=? and writeTime           
               
                                           
                       
                 

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64408.html

相關文章

  • Android存儲方式之SQLite

    摘要:前言數據庫操作在開發中非常常用今天我將帶大家全面了解關于數據庫的操作增刪查改目錄數據庫介紹是內置的一個小型關系型屬于文本型的數據庫。提供了對數據庫的完全支持,應用程序中的任何類都可以通過名稱來訪問任何的數據庫,但是應用程序之外的就不能訪問。 前言 SQLite數據庫操作在Android開發中非常常用 今天我將帶大家全面了解關于SQLite數據庫的操作(增、刪、查、改) 目錄 sho...

    rainyang 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<