Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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 日期时间格式_Android_Android Dialogfragment_Android Datepicker_Android Timepicker - Fatal编程技术网

Android 日期时间格式

Android 日期时间格式,android,android-dialogfragment,android-datepicker,android-timepicker,Android,Android Dialogfragment,Android Datepicker,Android Timepicker,我在datepicker中选择日期,得到的是edittext:13/12/2014但我必须这样显示:13 Dec 2014 public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener { public EditText activity_edittext; public DatePickerFragment(EditText edit_text) {

我在datepicker中选择日期,得到的是edittext:
13/12/2014
但我必须这样显示:
13 Dec 2014

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {

public EditText activity_edittext;

public DatePickerFragment(EditText edit_text) {
    activity_edittext = edit_text;
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the current date as the default date in the picker
    final Calendar c = Calendar.getInstance();
    int year = c.get(Calendar.YEAR);
    int month = c.get(Calendar.MONTH);
    int day = c.get(Calendar.DAY_OF_MONTH);

    // Create a new instance of DatePickerDialog and return it
    return new DatePickerDialog(getActivity(), this, year, month, day);
}

    @Override
    public void onDateSet(DatePicker view, int year, int month, int day) {
        activity_edittext.setText(String.valueOf(day) + "/" + String.valueOf(month + 1 ) + "/" + String.valueOf(year));
    }
}
以同样的方式使用时间选择器,我得到如下值:
21:12
,我必须显示如下内容:
9:12 pm

public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener {

        public EditText activity_edittext;

        public TimePickerFragment(EditText edit_text)
        {
            activity_edittext = edit_text;
        }

        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            // Use the current time as the default values for the picker
            final Calendar c = Calendar.getInstance();
            int hour = c.get(Calendar.HOUR_OF_DAY);
            int minute = c.get(Calendar.MINUTE);

            // Create a new instance of TimePickerDialog and return it
            return new TimePickerDialog(getActivity(), this, hour, minute,
                    DateFormat.is24HourFormat(getActivity()));
        }

        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            activity_edittext.setText(String.valueOf(hourOfDay) + ":" + String.valueOf(minute));
        }
}
用于设置日期格式。因为您可以使用
dd-MMM-yyyy
格式从
13/12/2014
将日期设置为2014年12月13日

try {

    String dateString = String.valueOf(day) + "/" + String.valueOf(month + 1 ) + "/" + String.valueOf(year);
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date date = sdf.parse(dateString);

    sdf = new SimpleDateFormat("dd MMM yyyy");
    String formatedDate = sdf.format(date);

} catch (Exception e) {}
或者,您可以使用
DateFormatSymbols
转换日期的月份,如下所示

String month = new DateFormatSymbols().getMonths()[month-1];
并将您的时间设置为
9:12 pm
,使用
hh:mm a
格式如下

try {

    String timeString = String.valueOf(hourOfDay) + ":" + String.valueOf(minute);
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
    Date time = sdf.parse(timeString);

    sdf = new SimpleDateFormat("hh:mm a");
    String formatedTime = sdf.format(time);

} catch (Exception e) {}
用于设置日期格式。因为您可以使用
dd-MMM-yyyy
格式从
13/12/2014
将日期设置为2014年12月13日

try {

    String dateString = String.valueOf(day) + "/" + String.valueOf(month + 1 ) + "/" + String.valueOf(year);
    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
    Date date = sdf.parse(dateString);

    sdf = new SimpleDateFormat("dd MMM yyyy");
    String formatedDate = sdf.format(date);

} catch (Exception e) {}
或者,您可以使用
DateFormatSymbols
转换日期的月份,如下所示

String month = new DateFormatSymbols().getMonths()[month-1];
并将您的时间设置为
9:12 pm
,使用
hh:mm a
格式如下

try {

    String timeString = String.valueOf(hourOfDay) + ":" + String.valueOf(minute);
    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
    Date time = sdf.parse(timeString);

    sdf = new SimpleDateFormat("hh:mm a");
    String formatedTime = sdf.format(time);

} catch (Exception e) {}

你设置错误了。您需要检查现在是哪个月,并根据它添加文本

请尝试以下设置日期:

@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
    String month_name="";
    switch(month) {
        case Calendar.JANUARY:
            month_name = "JAN";
        break;
        case Calendar.FEBRUARY:
            month_name = "FEB";

        case Calendar.MARCH:
            month_name = "MAR";
        break;
        case Calendar.APRIL:
            month_name = "APR";

        case Calendar.MAY:
            month_name = "MAY";
        break;
        case Calendar.JUNE:
            month_name = "JUN";

        case Calendar.JULY:
            month_name = "JUL";

        case Calendar.AUGUST:
            month_name = "AUG";
        break;
        case Calendar.SEPTEMBER:
            month_name = "SEP";
        case Calendar.OCTOBER:
            month_name = "OCT";
        break;
        case Calendar.NOVEMBER:
            month_name = "NOV";
        break;
        case Calendar.DECEMBER:
            month_name = "DEC";    
        break;
    }
    activity_edittext.setText(String.valueOf(day) + " " + month_name + " " + String.valueOf(year));
}
要设置12小时格式的时间,您需要检查其时间并相应地设置文本:

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    String hour = "";
    String meridiem = "";
    Calendar datetime = Calendar.getInstance();
    datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
    datetime.set(Calendar.MINUTE, minute);

    if (datetime.get(Calendar.AM_PM) == Calendar.AM)
        meridiem = "AM";
    else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
        meridiem = "PM";

    hour = (datetime.get(Calendar.HOUR) == 0) ?"12":String.valueOf(datetime.get(Calendar.HOUR));
    activity_edittext.setText(hour + ":" + String.valueOf(minute) + " " + meridiem);
}

希望这有帮助。

您设置错误。您需要检查现在是哪个月,并根据它添加文本

请尝试以下设置日期:

@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
    String month_name="";
    switch(month) {
        case Calendar.JANUARY:
            month_name = "JAN";
        break;
        case Calendar.FEBRUARY:
            month_name = "FEB";

        case Calendar.MARCH:
            month_name = "MAR";
        break;
        case Calendar.APRIL:
            month_name = "APR";

        case Calendar.MAY:
            month_name = "MAY";
        break;
        case Calendar.JUNE:
            month_name = "JUN";

        case Calendar.JULY:
            month_name = "JUL";

        case Calendar.AUGUST:
            month_name = "AUG";
        break;
        case Calendar.SEPTEMBER:
            month_name = "SEP";
        case Calendar.OCTOBER:
            month_name = "OCT";
        break;
        case Calendar.NOVEMBER:
            month_name = "NOV";
        break;
        case Calendar.DECEMBER:
            month_name = "DEC";    
        break;
    }
    activity_edittext.setText(String.valueOf(day) + " " + month_name + " " + String.valueOf(year));
}
要设置12小时格式的时间,您需要检查其时间并相应地设置文本:

public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
    String hour = "";
    String meridiem = "";
    Calendar datetime = Calendar.getInstance();
    datetime.set(Calendar.HOUR_OF_DAY, hourOfDay);
    datetime.set(Calendar.MINUTE, minute);

    if (datetime.get(Calendar.AM_PM) == Calendar.AM)
        meridiem = "AM";
    else if (datetime.get(Calendar.AM_PM) == Calendar.PM)
        meridiem = "PM";

    hour = (datetime.get(Calendar.HOUR) == 0) ?"12":String.valueOf(datetime.get(Calendar.HOUR));
    activity_edittext.setText(hour + ":" + String.valueOf(minute) + " " + meridiem);
}

希望这能有所帮助。

谢谢,我点击了有用的,我使用了你的时间选择器解决方案和哈米德·沙图的日期选择器解决方案,现在我弄糊涂了accept@Sun没关系:)你可以接受哈米德的答案。。快乐编码:)谢谢,我点击了有用的,我用你的解决方案时间选择器和哈米德沙图的解决方案日期选择器,现在我混淆了一个accept@Sun没关系:)你可以接受哈米德的答案。。快乐编码:)谢谢,我点击了有用的,我用你的解决方案为DatePicker和神秘魔法的解决方案为Time Picker,现在我混淆了一个接受答案,你可以检查它是否被接受。这是更好的答案,因为它只与API一起工作,没有任何硬编码字符串,此外,它还取决于系统区域设置,因此它是多语言的谢谢,我点击了有用的,我使用了你的解决方案用于日期选取器和神秘魔法的解决方案用于时间选取器,现在我混淆了一个来接受答案,你认为答案更好,你可以检查它是否被接受。这是更好的答案,因为它只适用于API,没有任何硬编码字符串,也取决于系统语言环境,因此它是多语言的