Android str.插入(2,“-”); str.插入(5,'-'); etPurchaseDate.setText(str); }否则{ etPurchaseDate.setText(searchFrom); etPurchaseDate.requestFocus(); etPurchaseDate.setSelection(8); } etCost.requestFocus(); dialog.dismise(); } }); dialog.show(); } 用于日期选择器xml

Android str.插入(2,“-”); str.插入(5,'-'); etPurchaseDate.setText(str); }否则{ etPurchaseDate.setText(searchFrom); etPurchaseDate.requestFocus(); etPurchaseDate.setSelection(8); } etCost.requestFocus(); dialog.dismise(); } }); dialog.show(); } 用于日期选择器xml,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,在保存数据之前,请使用此代码删除破折号 if(etPurchaseDate.length()==10) { /* NO spaces \ No = \ NO - \ NO -- \ ONLY numbers \ NO - at the end*/ String tstr = "^(?!.*\\s)^(?=.*)^(?!-)(?!.*--)[0-9-]+(? <!

在保存数据之前,请使用此代码删除破折号

            if(etPurchaseDate.length()==10) {
                            /* NO spaces \ No = \ NO - \ NO -- \ ONLY 
    numbers \ NO - at the end*/
                String tstr = "^(?!.*\\s)^(?=.*)^(?!-)(?!.*--)[0-9-]+(?
    <!-)$";
                String astr = etPurchaseDate.getText().toString().trim();
                Pattern regex = Pattern.compile(tstr);
                Matcher regexMatcher = regex.matcher(astr);

                boolean foundMatch = regexMatcher.find();


      if (foundMatch == true ) {//IF FOUND REMOVE THE DASH'S AND STORE DATA
 /* Routine puts DATE back in DB as 8 Character String REMOVES dashes "-" */
                    StringBuilder removeTHIS = new 
     StringBuilder(etPurchaseDate.getText().toString());
                    String value = removeTHIS.toString().replace("-", "");
                    etPurchaseDate.setText(value);
                    etCost.requestFocus();
                    purchase_date = value;
                    etCost.requestFocus();
                    //return;
                    Toast.makeText(DetailsActivity.this, "Date was Formatted 
       for Storage", Toast.LENGTH_LONG).show();
                }
            }
if(etPurchaseDate.length()==10){
/*没有空格\NO=\NO-\NO--\ONLY
数字\n否-结尾处*/
字符串tstr=“^(?。.*\\s)^(?=.*)^(?!)(?!.-)[0-9-]+(?)?

请详细说明这些问题……你不会问任何问题,你只是粘贴了你的代码,你展示了代码,没有问任何问题。问题是什么?你面临的问题是什么?不要只放代码。我的日期不被认为是简单的日期格式(“YYYY MM DD”)。在这种格式中,它采用类似“10月10日星期二00:00:00 GMT+2017年5:30”的日期,我使用日历控件在数据库“yyy-MM-dd”中添加日期。
 public void onCreate(SQLiteDatabase sqLiteDatabase) {
    String CREATE_TABLE="CREATE TABLE "+ TBNAME +" ( "+ID +" INTEGER PRIMARY KEY AUTOINCREMENT,"+DATE+" date,"+NAME+" TEXT)";
    sqLiteDatabase.execSQL(CREATE_TABLE);
}
 public ArrayList<ADate> retrieveByUseDate(String fromdate,String todate) throws ParseException {

    SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd");

    Date date1 = sfd.parse(fromdate);
    Date date2 = sfd.parse(todate);

    SQLiteDatabase database = getReadableDatabase();
    ArrayList<ADate> arrayList = new ArrayList<ADate>();
    Cursor cursor = database.rawQuery("select * from " + TBNAME + " where DATE BETWEEN " + date1+ " AND " + date2, null);
    System.out.println(cursor);

    while (cursor.moveToNext()) {
        int id = cursor.getInt(0);
        String selectdate = cursor.getString(1);
        String aname = cursor.getString(2);
        ADate date = new ADate(id, selectdate, aname);
        arrayList.add(date);
    }
    return arrayList;
}
public class RetrieveData extends AppCompatActivity implements View.OnClickListener{

Button btnFromDate,btnToDate,btnshow;
ListView lvRecord;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_retrieve_data);
    btnFromDate= (Button) findViewById(R.id.btnFromDate);
    btnToDate= (Button) findViewById(R.id.btnToDate);
    btnshow= (Button) findViewById(R.id.btnShow);
    lvRecord= (ListView) findViewById(R.id.lvRecord);
    btnFromDate.setOnClickListener(this);
    btnToDate.setOnClickListener(this);
    btnshow.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.btnFromDate:
            fromDate();
            break;
        case R.id.btnToDate:
            toDate();
            break;
        case R.id.btnShow:              
            try {
                dateRecord();
            } catch (ParseException e) {
                e.printStackTrace();
            }               
    }
}

public void fromDate(){
    Calendar c= Calendar.getInstance();

    final int yr=c.get(Calendar.YEAR);
    final int month=c.get(Calendar.MONTH);
    final int day=c.get(Calendar.DAY_OF_MONTH);
    DatePickerDialog dd=new DatePickerDialog(RetrieveData.this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
            String date=i+"-"+(i1+1)+"-"+i2;
                btnFromDate.setText(date);
        }
    },yr,month,day);
    dd.show();
}

public void toDate(){
    Calendar c= Calendar.getInstance();
    final int yr=c.get(Calendar.YEAR);
    final int month=c.get(Calendar.MONTH);
    final int day=c.get(Calendar.DAY_OF_MONTH);

    DatePickerDialog dd=new DatePickerDialog(RetrieveData.this, new DatePickerDialog.OnDateSetListener() {
        @Override
        public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
            String date=i+"-"+(i1+1)+"-"+i2;
            btnToDate.setText(date);
        }
    },yr,month,day);
    dd.show();
}

public void dateRecord() throws ParseException {

    String fromdate=btnFromDate.getText().toString();
    String todate=btnToDate.getText().toString();

    DBHelper db=new DBHelper(RetrieveData.this);
    ArrayList<ADate> aDateArrayList=db.retrieveByUseDate(fromdate,todate);
    ArrayAdapter<ADate> aDateArrayAdapter=new ArrayAdapter<ADate>(RetrieveData.this,android.R.layout.simple_list_item_1,aDateArrayList);
    lvRecord.setAdapter(aDateArrayAdapter);
}
    public void findByDate(){
    etPurchaseDate.setText("");
    // DATE PICKER Sub Routine the XML file holds the Date Picker see 
  datepickerview.xml
    final Dialog dialog = new 
  Dialog(DetailsActivity.this,R.style.DatePickerTheme);
    /* the style and reference to the XML MUST be included in the lines os 
  code above and below */
    /* 

    dialog.setContentView(R.layout.datepickerview);
    dialog.setTitle("");
    DatePicker picker = dialog.findViewById(R.id.datePicker);
    final Calendar c = Calendar.getInstance();
    mYear = c.get(Calendar.YEAR);
    mMonth = c.get(Calendar.MONTH);
    mDay = c.get(Calendar.DAY_OF_MONTH);
    picker.updateDate(mYear, mMonth, mDay);// Keeps Calendar initial view to 
  what today is!

    picker.init(c.get(Calendar.YEAR), c.get(Calendar.MONTH), 
  c.get(Calendar.DAY_OF_MONTH), new DatePicker.OnDateChangedListener() {

        @Override
        public void onDateChanged(DatePicker picker, int year, int 
  monthOfYear, int dayOfMonth) {

            String searchFrom = (String.valueOf(monthOfYear + 1)) + 
   (String.valueOf(dayOfMonth)) + String.valueOf(year);
            StringBuilder str = new StringBuilder(searchFrom);
            if (searchFrom.length() == 7) {
                    str.insert(2, '0');
                    str.insert(2, '-');
                    str.insert(5, '-');
                    etPurchaseDate.setText(str);
                } else if (searchFrom.length() == 6) {
                    str.insert(0, '0');
                    str.insert(2, '0');
                    str.insert(2, '-');
                    str.insert(5, '-');
                    etPurchaseDate.setText(str);
                } else {
                    etPurchaseDate.setText(searchFrom);
                    etPurchaseDate.requestFocus();
                    etPurchaseDate.setSelection(8);
                }
                etCost.requestFocus();
                dialog.dismiss();
        }
});
    dialog.show();
}
for date picker xml

 <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:background="@color/color_White"
   android:orientation="vertical">

<DatePicker
    android:id="@+id/datePicker"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:calendarViewShown="true"
    android:headerBackground="@color/color_Purple"
    android:theme="@style/DatePickerTheme" />

 </LinearLayout>
            if(etPurchaseDate.length()==10) {
                            /* NO spaces \ No = \ NO - \ NO -- \ ONLY 
    numbers \ NO - at the end*/
                String tstr = "^(?!.*\\s)^(?=.*)^(?!-)(?!.*--)[0-9-]+(?
    <!-)$";
                String astr = etPurchaseDate.getText().toString().trim();
                Pattern regex = Pattern.compile(tstr);
                Matcher regexMatcher = regex.matcher(astr);

                boolean foundMatch = regexMatcher.find();


      if (foundMatch == true ) {//IF FOUND REMOVE THE DASH'S AND STORE DATA
 /* Routine puts DATE back in DB as 8 Character String REMOVES dashes "-" */
                    StringBuilder removeTHIS = new 
     StringBuilder(etPurchaseDate.getText().toString());
                    String value = removeTHIS.toString().replace("-", "");
                    etPurchaseDate.setText(value);
                    etCost.requestFocus();
                    purchase_date = value;
                    etCost.requestFocus();
                    //return;
                    Toast.makeText(DetailsActivity.this, "Date was Formatted 
       for Storage", Toast.LENGTH_LONG).show();
                }
            }