0

我在日期選擇器選擇日期和得到的東西像這樣的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格式化你的日期。您可以使用dd MMM yyyy格式將日期形成爲13 Dec 201413/12/2014

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]; 

而且如下

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和神祕魔術師的解決方案的時間選擇器,現在我很迷惑一個接受 – Sun 2014-12-08 08:39:37

+0

答案似乎對你更好,你可以檢查,如接受。 – 2014-12-08 08:45:18

+0

這是更好的答案,因爲它只適用於API,沒有任何硬編碼的字符串,也取決於系統區域設置,所以它是多語言 – mihail 2014-12-08 08:55:31

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

要設置錯誤地與hh:mm a格式格式化時間爲9:12 pm 。您需要檢查哪個月,並基於它,您將需要添加其文本。

試試這個設置日期:

@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和哈米德沙圖解決方案的日期選取器,現在我很迷惑一個接受 – Sun 2014-12-08 08:39:08

+0

@孫,這沒關係:)你可以接受哈米德的答案..快樂編碼:) – 2014-12-08 08:40:00