Android日期SQLite SimpleDateFormat日历[重复]

Posted

技术标签:

【中文标题】Android日期SQLite SimpleDateFormat日历[重复]【英文标题】:Android date SQLite SimpleDateFormat Calendar [duplicate] 【发布时间】:2014-08-12 17:03:14 【问题描述】:

通过查询,我从 SQLite 数据库中获得了“日期”值,格式为“YYYY-MM-DD”。现在我想把这种格式转换成getInstance()格式显示日期。我该怎么办?

 DateFormat fmtDateAndTime=DateFormat.getDateInstance();  
 GregorianCalendar dateAndTime = (GregorianCalendar) GregorianCalendar.getInstance();

我知道日期了:

private void Mto() 
    String id_ricevuto = (i.getStringExtra("id_p"));    

    SQLiteDatabase db = mHelper.getReadableDatabase();
    String tabella = "SELECT _id, date FROM Table1 WHERE _id = '"+id_ricevuto+"'";
    Cursor c = db.rawQuery(tabella, null);
    while (c.moveToNext())
        String id = c.getString(0);
        String date = c.getString(1);
        //here I want to convert the data before displaying it in the TextView          
        idw.setText(id);

        mBtnPickDate.setText(date);


    

    c.close();
    db.close();

【问题讨论】:

发布完整代码,包括从数据库中获取值的位置。 我编辑了我的帖子。谢谢 【参考方案1】:

使用可以使用 SimpleDateFormat 来实现:

private void Mto() 
    String id_ricevuto = (i.getStringExtra("id_p"));    
    SQLiteDatabase db = mHelper.getReadableDatabase();
    String tabella = "SELECT _id, date FROM Table1 WHERE _id = '"+id_ricevuto+"'";
    Cursor c = db.rawQuery(tabella, null);
    while (c.moveToNext())
        String id = c.getString(0);
        String date = c.getString(1);
        DateFormat originalFormat = new SimpleDateFormat("YYYY-MM-DD", Locale.ENGLISH);
        DateFormat targetFormat = new SimpleDateFormat("yyyy:MM:dd");
        Date date = originalFormat.parse("August 21, 2012");
        String formattedDate = targetFormat.format(date);  // 20120821
        idw.setText(id);
        mBtnPickDate.setText(formattedDate);
    
    c.close();
    db.close();

还要注意 parse 需要一个字符串,而不是一个已经被解析的 Date 对象。肯定会成功的!

【讨论】:

以上是关于Android日期SQLite SimpleDateFormat日历[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Sqlite ( android ) 中的 datetime 字段获取日期

如何在 Android 应用程序中插入日期时间设置为“现在”的 SQLite 记录?

Android Sqlite 根据日期列删除最旧的重复结果

带有日期字符串的 Android SQLite rawquery 在 WHERE 子句中不起作用

SQLite中支持android的数据类型是啥

18 日期格式