Java 将拾取的日期时间对话框选择器转换为存储在sqlite DB中
我已经在我的应用程序中创建了一个日期选择器。但我试图克服的问题是如何获取所选日期并将其存储在我的数据库中: 在my 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
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);