0

我正在使用editText输入类型是日期,我希望用户以日期格式输入日期并将其存储在sqlite表的日期时间字段中。这可能吗?因为 editText 日期格式是 dd/mm/yyyy 而在 sqlite 中它是 yyyy/mm/dd。

我设计了一个表单,其中有一个编辑文本,用户将通过该文本输入日期,并且我想将此日期存储在字段类型为 datetime 的 sqlite 中。怎么做?我是android新手,所以如果有人知道解决方案,请给我答案。

4

1 回答 1

1

我已经解决了我的问题:

  1. 我在 sqlite3 中采用了 date 的数据类型是 datetime 。
  2. 我使用了 textview、datepicker 和 date_picker_demo.xml 中保存在布局中的按钮。

  3. 日期选择器.java

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
            db = new DatabaseHelper(this);
            date_textview = (TextView) findViewById(R.id.tv_date);
            picker_date = (DatePicker) findViewById(R.id.datepicker1);
            button_create = (Button) findViewById(R.id.button_create);
    }
    
    @Override 
    public void onClick(View arg0) {
        date = new Date(picker_date.getYear()-1900, picker_date.getMonth(), picker_date.getDayOfMonth()); 
            sdf = new SimpleDateFormat("yyyy-MM-dd");
    
           //sdf.format()->converting date to string
    String sdate = sdf.format(date); 
    
          //inserting date into database
             try {
        db.createDataBase();
    } catch (IOException e) {
        e.printStackTrace();
    }
    db.openDataBase();
    Cursor cur = db.select();
    
    for(cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()){
        if(cur.isLast()){
            s_id = Integer.parseInt(cur.getString(0));
            s_id = s_id + 1;
        }
    }
             db.insertDate(s_id,sdate);
       }
    
  4. 数据库助手.java

     public Cursor select(){
     String qry = "Select subscription_id from Subscription_Master";
     cur = sqdb.rawQuery(qry,null); 
    return cur;
     }
    
     public void insertDate(int s_id,String s_date){
    
    String query = "insert into Subscription_TAB(subscription_id,start_date) values("+s_id+",date('"+s_date+"'))";
     sqdb.execSQL(query);
     Log.d("value","inserted");
     }
    

日期已成功插入数据库。

于 2013-02-14T11:47:51.380 回答