Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将拾取的日期时间对话框选择器转换为存储在sqlite DB中_Java_Android_Sqlite - Fatal编程技术网

Java 将拾取的日期时间对话框选择器转换为存储在sqlite DB中

Java 将拾取的日期时间对话框选择器转换为存储在sqlite DB中,java,android,sqlite,Java,Android,Sqlite,我已经在我的应用程序中创建了一个日期选择器。但我试图克服的问题是如何获取所选日期并将其存储在我的数据库中: 在my DB中,日期字段设置为文本 private int mYear, mMonth, mDay, mHour, mMinute; @Override public void onClick(View v) { final Calendar calendar = Calendar.getInstance(); //Get the date

我已经在我的应用程序中创建了一个日期选择器。但我试图克服的问题是如何获取所选日期并将其存储在我的数据库中: 在my DB中,日期字段设置为文本

private int mYear, mMonth, mDay, mHour, mMinute;
 @Override
    public void onClick(View v) {
        final Calendar calendar = Calendar.getInstance();
        //Get the date
        if (v == buttonDatePicker) {


            mYear = calendar.get(Calendar.YEAR);
            mMonth = calendar.get(Calendar.MONTH);
            mDay = calendar.get(Calendar.DAY_OF_MONTH);

            DatePickerDialog datePickerDialog = new DatePickerDialog(this,
                    new DatePickerDialog.OnDateSetListener() {
                        @Override
                        public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                            etDate.setText(dayOfMonth + "-" + month + "-" + year);
                            mYear = year;
                            mMonth = month;
                            mDay = dayOfMonth;
                        }
                    }, mYear, mMonth, mDay);
            datePickerDialog.show();

        }
        //Get the time
        if (v == buttonTimePicker) {

            mHour = calendar.get(Calendar.HOUR_OF_DAY);
            mMinute = calendar.get(Calendar.MINUTE);


            TimePickerDialog timePickerDialog = new TimePickerDialog(this,
                    new TimePickerDialog.OnTimeSetListener() {
                        @Override
                        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                            etTime.setText(hourOfDay + ":" + minute);
                            mHour = hourOfDay;
                            mMinute = minute;
                        }
                    }, mHour, mMinute, true);
            timePickerDialog.show();

        }
    }
我试图将选择的年份等从int转换为String,但当我试图转换它时,它似乎不喜欢它

如何将其存储在数据库中:

        typedUpSmsMessage = smsMessage.getText().toString();
        ContentValues cv = new ContentValues();
        cv.put("textMessage", typedUpSmsMessage);
        cv.put("dateToSendText",mYear + mMonth + mDay);
        cv.put("gameID", gameID);
        automateGameDB.insert("automateGames", null, cv);
当然,因为日期是整数,所以它只是将数字相加。 需要将它们转换为字符串或日期格式吗?(yyyy-mm-dd-hh-mm-ss)


谢谢你,我真的不明白你的要求。 这是你的密码吗
String String=Integer.toString(int)
String.valueOf(int)
或干脆
String+“”

解决您的问题?

在数据库中插入日期,如

cv.put("dateToSendText",dayOfMonth + "-" + month + "-" + year)


我建议您将日期作为时间戳存储在数据库中:

Calendar calendar = Calendar.getInstance()
calendar.set(year, month, day, hour, minute, second)
Long timestamp = calendar.getTimeInMillis() // Save timestamp in database

由于该字段是文本,您应该使用
cv.put(“dateToSendText”,year+“-”+month+“-”+dayOfMonth)
和4位数year以及2位数month和dayOfMonth,因为它是可比较和可排序的。

使用

 inputDate = mYear +"-"+ mMonth +"-"+ mDay;
 SimpleDateFormat src = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
 SimpleDateFormat dest = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.US);
 Date date = null;
 try {
     date = src.parse(inputDate);
 } catch (ParseException e) {
     Log.d("Exception",e.getMessage());
 }
 String formattedDate = dest.format(date);
您可以根据需要更改dest Dateformat。。。 在sqlite中使用“TEXT”数据类型存储此日期字段

 inputDate = mYear +"-"+ mMonth +"-"+ mDay;
 SimpleDateFormat src = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
 SimpleDateFormat dest = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.US);
 Date date = null;
 try {
     date = src.parse(inputDate);
 } catch (ParseException e) {
     Log.d("Exception",e.getMessage());
 }
 String formattedDate = dest.format(date);