第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應(yīng)該如何從綁定到文本視圖的數(shù)據(jù)庫中獲取長類型日期作為格式正確的日期?

我應(yīng)該如何從綁定到文本視圖的數(shù)據(jù)庫中獲取長類型日期作為格式正確的日期?

夢里花落0921 2023-04-26 10:45:50
我將我的日期以毫秒為單位存儲到我的數(shù)據(jù)庫中。稍后,我嘗試從數(shù)據(jù)庫中加載它,并使用 SimpleCursorAdapter 將其加載到文本視圖中。但是,每次我調(diào)用它時,我都會將毫秒返回為字符串,因此當(dāng)我將它綁定到文本視圖時,我看到的不是正確的格式,而是毫秒。變量:    public static final String COL_ID = "_id";    public static final String COL_DATE = "date";    public static final String COL_CONTENT = "content";    public static final String COL_IMPORTANT = "important";    private static final int INDEX_ID = 0;    public static final int INDEX_DATE = INDEX_ID + 1;    public static final int INDEX_CONTENT = INDEX_ID + 2;    public static final int INDEX_IMPORTANT = INDEX_ID+ 3;在數(shù)據(jù)庫適配器中創(chuàng)建函數(shù):    public void createEvent(long day, String name, boolean important) {        ContentValues values = new ContentValues();        values.put(COL_DATE, day);        values.put(COL_CONTENT, name);        values.put(COL_IMPORTANT, important ? 1 : 0);        mDb.insert(TABLE_NAME, null, values);    }建表查詢:    private static final String DATABASE_CREATE =            "CREATE TABLE if not exists " + TABLE_NAME + " ( " +                    COL_ID + " INTEGER PRIMARY KEY autoincrement, " +                    COL_DATE + " INTEGER, " +                    COL_CONTENT + " TEXT, " +                    COL_IMPORTANT + " INTEGER );";我的活動電話:        mDbAdapter = new EventsDbAdapter(this);        mDbAdapter.open();        Cursor cursor = mDbAdapter.fetchAllEvents();        String[] from = new String[] {EventsDbAdapter.COL_DATE, EventsDbAdapter.COL_CONTENT};        int[] to = new int[] {R.id.event_list_row_dayTextView, R.id.event_list_row_dataTextView};        mCursorAdapter = new EventsSimpleCursorAdapter(                CalendarActivity.this,                R.layout.event_feed_item_row,                cursor,                from,                to,                0);        mListView.setAdapter(mCursorAdapter);
查看完整描述

1 回答

?
肥皂起泡泡

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個贊

我相信您可以更改fetchAllEvents方法以返回一個游標(biāo),其中包含根據(jù)需要格式化的日期,作為附加列(因此您不需要轉(zhuǎn)換/格式化任何您想要的值直接提供)

這可能基于使用strftime('%d'," + COL_DATE + " / 1000,'unixepoch').?這 :-

  1. 獲取 COL_DATE 中的值并將其除以 1000 以降低毫秒數(shù),

  2. 將值修改為 unix 時間,而不是儒略日。

  3. 使用%d格式化程序格式化值 DD 格式。

您的fecthAllEvents方法可能類似于:-

public Cursor fetchAllEvents() {


? ? SQLiteDatabase db = this.getWritableDatabase();

? ? String[] columns = new String[]{"*","strftime('%d'," + COL_DATE + " / 1000,'unixepoch') AS date_as_DD"}; //<<<<<<<<<< this gets the day of the month DD from the timestamp

? ? return db.query(TABLE_NAME,columns,null,null,null,null,null);

}

然后,適配器可以將列date_as_DD作為字符串從 Cursor 中檢索。

  • 注意上面的代碼是原理代碼。它沒有經(jīng)過語法檢查或運(yùn)行,因此可能包含一些錯誤。

  • 請注意,如果您想要 10 天以內(nèi)的單個數(shù)字,則可以修改上面的內(nèi)容以使用CAST(strftime('%d',date/1000,'unixepoch') AS INTEGER) AS date_as_DD(即強(qiáng)制使用 INTEGER 類型而不是 TEXT 類型)。

測試

以上內(nèi)容基于以下測試代碼:-

DROP TABLE IF EXISTS mytable;

CREATE TABLE IF NOT EXISTS mytable (_id INTEGER PRIMARY KEY, date INTEGER, content TEXT, important INTEGER);

-- add some data with unix dates with milliseconds (i.e. * 1000)

INSERT INTO mytable (date,content,important) VALUES(strftime('%s','now') * 1000,'blah',0);

INSERT INTO mytable (date,content,important) VALUES(strftime('%s','now','-1 Day') * 1000,'blah',0);

INSERT INTO mytable (date,content,important) VALUES(strftime('%s','now','-7 Day') * 1000,'blah',0);

INSERT INTO mytable (date,content,important) VALUES(strftime('%s','now','-10 Day') * 1000,'blah',0);

INSERT INTO mytable (date,content,important) VALUES(strftime('%s','now','-20 Day') * 1000,'blah',0);

INSERT INTO mytable (date,content,important) VALUES(strftime('%s','now','-1 Month') * 1000,'blah',0);

SELECT *, datetime(date/1000,'unixepoch') AS fulldate, strftime('%d',date/1000,'unixepoch') AS date_as_DD FROM mytable;

結(jié)果是:-

http://img4.sycdn.imooc.com/6448909d00017da605820195.jpg

  • fulldate列顯示完整的日期時間(不需要)

  • date_as_DD可用的新列。

  • 您可能希望為列名創(chuàng)建一個常量,例如DERIVED_COL_DATEASDD = "date_as_DD";要在整個過程中使用。

例如

String[]?from?=?new?String[]?{EventsDbAdapter.COL_DATE,?EventsDbAdapter.COL_CONTENT};

可以更改為:-

String[]?from?=?new?String[]?{"date_as_DD",?EventsDbAdapter.COL_CONTENT};

或者,如果使用常量DERIVED_COL_DATEASDD ,則:-

String[]?from?=?new?String[]?{EventsDbAdapter.DERIVED_COL_DATEASDD,?EventsDbAdapter.COL_CONTENT};
查看完整回答
反對 回復(fù) 2023-04-26
  • 1 回答
  • 0 關(guān)注
  • 106 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號