如何在android中设置DD-MMM-YYYY格式的日期
当我选择CheckIndate时,Edittext CheckIndate日期将追加到2016-08-08 但我想进入这种形式,比如2016年8月8日 我怎样才能实现这一点请帮助我如何在android中设置DD-MMM-YYYY格式的日期,android,datepicker,android-datepicker,datepickerdialog,Android,Datepicker,Android Datepicker,Datepickerdialog,当我选择CheckIndate时,Edittext CheckIndate日期将追加到2016-08-08 但我想进入这种形式,比如2016年8月8日 我怎样才能实现这一点请帮助我 CheckInDate.setOnClickListener(new View.OnClickListener() { @Override public void onClick (View v){ if (v == CheckInDate) { final Calendar
CheckInDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick (View v){
if (v == CheckInDate) {
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
c.set(Calendar.DAY_OF_MONTH, mDay);
DatePickerDialog dpd =
new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar cal = Calendar.getInstance();
// Calendar cal = new GregorianCalendar();
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
cal.set(Calendar.YEAR, year);
if (cal.before(c)) {
Toast.makeText(getActivity(), "Select valid date please.", Toast.LENGTH_LONG)
.show();
return;
}
StringBuilder date = new StringBuilder();
date.delete(0, date.length());
date.append(year)
.append("-")
.append((monthOfYear + 1) < 10 ? "0" : "")
.append((monthOfYear + 1))
.append("-")
.append((dayOfMonth < 10 ? "0" : ""))
.append(dayOfMonth);
CheckInDate.setText(date.toString());
}
}, mYear, mMonth, mDay);
dpd.getDatePicker().setMinDate(c.getTimeInMillis());
dpd.show();
}
};
CheckInDate.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(v==CheckInDate){
最终日历c=Calendar.getInstance();
int mYear=c.get(日历年);
int mMonth=c.get(日历月);
int mDay=c.get(日历,月的第天);
c、 设置(日历日/月/日,mDay);
DatePickerDialog dpd=
新建DatePickerDialog(getActivity(),新建DatePickerDialog.OnDateSetListener()){
@凌驾
公共void onDateSet(日期选择器视图,整数年,整数月,整数月){
Calendar cal=Calendar.getInstance();
//Calendar cal=新的Gregorianalendar();
校准设置(日历月、月、年);
cal.set(Calendar.DAY\u OF月,dayOfMonth);
校准设置(日历年、年份);
如果(在(c)之前计算){
Toast.makeText(getActivity(),“请选择有效日期”,Toast.LENGTH\u LONG)
.show();
返回;
}
StringBuilder日期=新建StringBuilder();
date.delete(0,date.length());
日期。追加(年)
.附加(“—”)
.append((monthOfYear+1)<10?“0”:“”)
.追加((一年一个月)
.附加(“—”)
.append((月日<10?:“))
.附加(每月的第天);
CheckInDate.setText(date.toString());
}
},mYear,Ammonth,mDay);
getDatePicker().setMinDate(c.getTimeInMillis());
dpd.show();
}
};
您可以像这样进行转换,从datepicker获取日期、月份和年份,然后像这样传递:
DatePickerDialog dpd =new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String mDate=convertDate(convertToMillis(yourDay,yourMonth,yourYear));
}
}, mYear, mMonth, mDay);
dpd.getDatePicker.setMinDate(c.getTimeInMillis());
dpd.show();
public String convertDate(long mTime) {
SimpleDateFormat df = new SimpleDateFormat("dd/MMM/yyyy");
String formattedDate = df.format(mTime);
return formattedDate;
}
public long convertToMillis(int day, int month, int year) {
Calendar calendarStart = Calendar.getInstance();
calendarStart.set(Calendar.YEAR, year);
calendarStart.set(Calendar.MONTH, month);
calendarStart.set(Calendar.DAY_OF_MONTH, day);
return calendarStart.getTimeInMillis();
}
您可以这样转换,从datepicker获取日期、月份和年份,并按如下方式传递:
DatePickerDialog dpd =new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
String mDate=convertDate(convertToMillis(yourDay,yourMonth,yourYear));
}
}, mYear, mMonth, mDay);
dpd.getDatePicker.setMinDate(c.getTimeInMillis());
dpd.show();
public String convertDate(long mTime) {
SimpleDateFormat df = new SimpleDateFormat("dd/MMM/yyyy");
String formattedDate = df.format(mTime);
return formattedDate;
}
public long convertToMillis(int day, int month, int year) {
Calendar calendarStart = Calendar.getInstance();
calendarStart.set(Calendar.YEAR, year);
calendarStart.set(Calendar.MONTH, month);
calendarStart.set(Calendar.DAY_OF_MONTH, day);
return calendarStart.getTimeInMillis();
}
使用此选项,它将以2016年8月8日的形式返回日期
private static String formatDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
cal.set(Calendar.YEAR, year);
Date myDate = cal.getTime();
String date=new SimpleDateFormat("dd-MMM-yyyy").format(myDate);
return date;
}
使用此选项,它将以2016年8月8日的形式返回日期
private static String formatDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
cal.set(Calendar.YEAR, year);
Date myDate = cal.getTime();
String date=new SimpleDateFormat("dd-MMM-yyyy").format(myDate);
return date;
}
您可以添加这样的方法
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
cal.set(Calendar.YEAR, year);
if (cal.before(c)) {
Toast.makeText(getActivity(), "Select valid date please.", Toast.LENGTH_LONG).show();
return;
}
int yrr=year;
int monn=monthOfYear+1;
int dayy=dayOfMonth;
CheckInDate.setText(formatDate(yrr, monn, dayy));
}
这里有formattate
方法
private static String formatDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day);
Date date = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy");
return sdf.format(date);
}
编辑
以yyyy-MM-dd格式在数据库中插入日期
简单的解决方案是将所选日期存储在字符串中(在OnDateSet方法中)并插入字符串
int yrr=year;
int monn=monthOfYear+1;
int dayy=dayOfMonth;
strDate = yrr + "-" + monn + "-" + dayy;
从中获取日期的第二个解决方案
String date=CheckInDate.getText().toString();
调用dateformatter(date)
方法以获取类似yyyy-MM-dd的字符串
public String DateFormater (String date)
{
SimpleDateFormat sdf;
sdf = new SimpleDateFormat("dd MMM yyyy"); //format of the date which you send as parameter(if the date is like 08-Aug-2016 then use dd-MMM-yyyy)
String s = "";
try {
Date dt = sdf.parse(date);
sdf = new SimpleDateFormat("yyyy-MM-dd");
s = sdf.format(dt);
} catch (ParseException e) {
e.printStackTrace();
}
return s;
}
您可以添加这样的方法
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, monthOfYear);
cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
cal.set(Calendar.YEAR, year);
if (cal.before(c)) {
Toast.makeText(getActivity(), "Select valid date please.", Toast.LENGTH_LONG).show();
return;
}
int yrr=year;
int monn=monthOfYear+1;
int dayy=dayOfMonth;
CheckInDate.setText(formatDate(yrr, monn, dayy));
}
这里有formattate
方法
private static String formatDate(int year, int month, int day) {
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(0);
cal.set(year, month, day);
Date date = cal.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MMM/yyyy");
return sdf.format(date);
}
编辑
以yyyy-MM-dd格式在数据库中插入日期
简单的解决方案是将所选日期存储在字符串中(在OnDateSet方法中)并插入字符串
int yrr=year;
int monn=monthOfYear+1;
int dayy=dayOfMonth;
strDate = yrr + "-" + monn + "-" + dayy;
从中获取日期的第二个解决方案
String date=CheckInDate.getText().toString();
调用dateformatter(date)
方法以获取类似yyyy-MM-dd的字符串
public String DateFormater (String date)
{
SimpleDateFormat sdf;
sdf = new SimpleDateFormat("dd MMM yyyy"); //format of the date which you send as parameter(if the date is like 08-Aug-2016 then use dd-MMM-yyyy)
String s = "";
try {
Date dt = sdf.parse(date);
sdf = new SimpleDateFormat("yyyy-MM-dd");
s = sdf.format(dt);
} catch (ParseException e) {
e.printStackTrace();
}
return s;
}
在MyFormattedate变量中,您可以获取格式化的日期字符串。字符串MyFormattedate=new SimpleDateFormat(“dd MMM yyyy”).format(cal.getTime());在MyFormattedate变量中,您可以获取格式化的日期字符串。字符串MyFormattedate=new SimpleDateFormat(“dd MMM yyyy”)。format(cal.getTime());让我试试:)谢谢,但你能解释一下如何将此格式插入mysql,如2016-08-08我想将此日期插入此2016-08-08格式你想要什么?如何在db中插入数据或如何更改日期格式。请看,选择的日期将显示为2016年8月9日。我想在mysql中以2016-08-09格式插入日期让我试试:)谢谢,但是你能告诉我如何将此格式插入mysql,如2016-08-08我想将此日期插入此2016-08-08格式你想要什么?如何在db中插入数据或如何更改日期格式。请看现在选择的日期将显示为2016年8月9日。我想将日期插入mysql,如2016-08-09格式让我试试:)谢谢让我试试:)Th谢谢你让我试试谢谢你让我试试