Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.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
如何在android中设置DD-MMM-YYYY格式的日期_Android_Datepicker_Android Datepicker_Datepickerdialog - Fatal编程技术网

如何在android中设置DD-MMM-YYYY格式的日期

如何在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时,Edittext CheckIndate日期将追加到2016-08-08 但我想进入这种形式,比如2016年8月8日 我怎样才能实现这一点请帮助我

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谢谢你让我试试谢谢你让我试试