Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android的Sqlite中DateTime類型數據的存取問題

Android的Sqlite中DateTime類型數據的存取問題

編輯:關於Android編程

關於講sqlite中日期類型數據的存取網上有不少,但發現講得這麼細的非常少。更多的是用Date,不用做日期數據統計分析,對存取要求比較小的直接轉換成long,即dateTime.getTime()存儲。需要在界面上顯示的時候就再將long型的日期數據轉化為Date或DateTime類型。但是如果要做數據統計分析的話這樣每條記錄都要遍歷轉換會顯得特別麻煩,數據量大的話時間消費是很大的。

我們知道Date類型數據在數據庫中是yyyy-MM-dd形式存的,而Time是HH:mm形式存的。而DateTime類型的存儲方式是yyyy-MM-dd HH:mm:ss.fff,有年、月、日、時、分、秒、毫秒。這樣DateTime類型的數據怎麼存?相信是個困擾初學者的問題。

 

       String timeStr = “2015-3-1 16:20”;
       SimpleDateFormat format = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);
       format.setTimeZone(TimeZone.getTimeZone(GMT+08:00));// 中國北京時間,東八區
       Date dateTime = null;
       try {
	        dateTime = (Date) format.parse(timeStr);
       } catch (ParseException e) {
	        e.printStackTrace();
       }

 

java.sql.Date是為了配合SQL DATE而設置的數據類型。“規范化”的java.sql.Date只包含年月日信息,原因是如果數據庫中存在的非規范化部分的信息如時分秒毫秒都會劫取清零。

要保存java.util.Date的精確值,

我們需要利用java.sql.Timestamp

 

Timestamp timestamp = new Timestamp(dateTime.getTime());

 

這樣就可以直接用timestamp向sqlite中插入DateTime類型的數據了。

那取呢?關鍵問題應該出現在游標中沒有專門取日期數據的方法。

 

注意,Android的Sqlite中的數據是弱類型存儲的。以String取出,再轉化成日期類型的。

    String str;
    SimpleDateFormat format;
    Date date = null;
    str = cursor.getString(cursor.getColumnIndex(相應的列名));
    format = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss);
    date = (Date) format.parse(str);
 
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved