0

Я выбор даты в 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)); 
     } 
} 

ответ

4

использование SimpleDateFormat для форматирования даты. Поскольку вы можете сформировать свою дату как 13 Dec 2014 от 13/12/2014, используя формат dd MMM yyyy.

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) {} 
+0

спасибо, я постучал как полезный, я использовал ваше решение для решения DatePicker и Mystic Magic для Time Picker, и теперь я путаю один, чтобы принять – Sun

+0

, ответ казался вам лучше, вы можете проверить это как принято. –

+0

это лучший ответ, так как он работает только с API, без каких-либо жестко закодированных строк, также зависит от языковой системы системы, поэтому он является многоязычным – mihail

0
SimpleDateFormat formatter = new SimpleDateFormat ("dd M yyyy", Locale.getDefault()); 
Date date = null; 
try { 
    date = formatter.parse("your date here"); 
} catch (Exception e) { } 
1

Вы настраиваете неправильно , Вам нужно проверить, какой именно месяц, и на его основе вам нужно будет добавить свой текст.

Попробуйте для установки даты:

@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); 
} 

Надеется, что это помогает.

+0

спасибо, я использовал как полезный, я использовал ваше решение для TimePicker и Hamid Shatu's решение для Date Picker, и теперь я путаюсь, чтобы принять – Sun

+0

@ Сун, это нормально :) Вы можете принять ответ Хамида .. счастливое кодирование :) –

Смежные вопросы