如何将字符串转换为可以存储在数据库中的日期?
How to convert String to Date which can be store in database?
我使用 DatePicker 并在方法 onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth)
中得到年、年月和月日,如何将这 3 个 int 合并到一个我可以用来存储在数据库中的日期?
实例化一个日历:
Calendar cal = Calendar.getInstance();
使用它的方法设置日期:
cal.set(int year, int month, int day);
然后将其存储为时间戳整数
cal.getTimeInMillis()
或作为字符串
cal.toString()
您可以使用 SimpleDateFormatter
.
将其转换为 dd/mm/yyyy
格式的 String
然后当您想要检索它时,使用一些 String
操作来检索每个单独的组件并构造一个 Date
对象。
你可以这样做
Calendar myCalendar = Calendar.getInstance();
DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
private void updateLabel()
{
String myFormat = "MM/dd/yy"; //In which format you need put here
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
textview.setText(sdf.format(myCalendar.getTime()));
}
希望对您有所帮助
试试这个:
private SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
private void datePicker(Date initialDate) {
Calendar cal = Calendar.getInstance();
if (initialDate != null) {
cal.setTime(initialDate);
}
new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String data = String.format("%02d/%02d/%04d", dayOfMonth, monthOfYear + 1, year);
try {
Date newDate = format.parse(data);
saveMyDate(newDate);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)).show();
}
private void saveMyDate(Date newDate) {
// do something
}
使用日历设置年月日
GregorianCalendar cal = new GregorianCalendar();
cal.set(GregorianCalendar.YEAR, year);
cal.set(GregorianCalendar.MONTH, monthOfYear);
cal.set(GregorianCalendar.DAY_OF_MONTH, dayOfMonth);
并存储为毫秒
cal.getTimeInMillis();
我使用 DatePicker 并在方法 onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth)
中得到年、年月和月日,如何将这 3 个 int 合并到一个我可以用来存储在数据库中的日期?
实例化一个日历:
Calendar cal = Calendar.getInstance();
使用它的方法设置日期:
cal.set(int year, int month, int day);
然后将其存储为时间戳整数
cal.getTimeInMillis()
或作为字符串
cal.toString()
您可以使用 SimpleDateFormatter
.
dd/mm/yyyy
格式的 String
然后当您想要检索它时,使用一些 String
操作来检索每个单独的组件并构造一个 Date
对象。
你可以这样做
Calendar myCalendar = Calendar.getInstance();
DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
myCalendar.set(Calendar.YEAR, year);
myCalendar.set(Calendar.MONTH, monthOfYear);
myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
updateLabel();
}
};
private void updateLabel()
{
String myFormat = "MM/dd/yy"; //In which format you need put here
SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US);
textview.setText(sdf.format(myCalendar.getTime()));
}
希望对您有所帮助
试试这个:
private SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
private void datePicker(Date initialDate) {
Calendar cal = Calendar.getInstance();
if (initialDate != null) {
cal.setTime(initialDate);
}
new DatePickerDialog(getContext(), new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String data = String.format("%02d/%02d/%04d", dayOfMonth, monthOfYear + 1, year);
try {
Date newDate = format.parse(data);
saveMyDate(newDate);
} catch (Exception ex) {
ex.printStackTrace();
}
}
}, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)).show();
}
private void saveMyDate(Date newDate) {
// do something
}
使用日历设置年月日
GregorianCalendar cal = new GregorianCalendar();
cal.set(GregorianCalendar.YEAR, year);
cal.set(GregorianCalendar.MONTH, monthOfYear);
cal.set(GregorianCalendar.DAY_OF_MONTH, dayOfMonth);
并存储为毫秒
cal.getTimeInMillis();