日期时间格式化
我在日期选择器选择日期和得到的东西像这样的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));
}
}
使用SimpleDateFormat格式化你的日期。您可以使用dd MMM yyyy
格式将日期形成为13 Dec 2014
从13/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) {}
SimpleDateFormat formatter = new SimpleDateFormat ("dd M yyyy", Locale.getDefault());
Date date = null;
try {
date = formatter.parse("your date here");
} catch (Exception e) { }
要设置错误地与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);
}
希望这有助于。
谢谢,我挖掘为有用的,我用你的解决方案TimePicker和哈米德沙图解决方案的日期选取器,现在我很迷惑一个接受 – Sun 2014-12-08 08:39:08
@孙,这没关系:)你可以接受哈米德的答案..快乐编码:) – 2014-12-08 08:40:00
谢谢,我窃听为有用的,我用你的解决方案为DatePicker和神秘魔术师的解决方案的时间选择器,现在我很迷惑一个接受 – Sun 2014-12-08 08:39:37
答案似乎对你更好,你可以检查,如接受。 – 2014-12-08 08:45:18
这是更好的答案,因为它只适用于API,没有任何硬编码的字符串,也取决于系统区域设置,所以它是多语言 – mihail 2014-12-08 08:55:31