Java 如何从android DatePicker获取格式化日期
android DatePicker提供以下回调Java 如何从android DatePicker获取格式化日期,java,android,datetime,datepicker,Java,Android,Datetime,Datepicker,android DatePicker提供以下回调 public void onDateSet(DatePicker view, int year, int month, int day) { // Do something with the date chosen by the user } 如何提取以下内容: 对于int day获取文本日,如周五、周一、周二或周四 对于int month获取文本月份,如一月、二月或三月 所以基本上我想得到两个不同的值,一天一个,然
public void onDateSet(DatePicker view, int year, int month, int day) {
// Do something with the date chosen by the user
}
如何提取以下内容:
- 对于
获取文本日,如周五、周一、周二或周四int day
- 对于
获取文本月份,如一月、二月或三月int month
SimpleDateFormat dateformat=new SimpleDateFormat("dd/MMM/yyyy");
放入日历对象
Calendar cal=Calendar.getInstance();
cal.set(Calendar.Date,day);
cal.set(Calendar.Month,month);
cal.set(Calendar.Year,year);
StringformatedDate=dateFormat.format(cal.getTime());
您可以尝试以下方法:
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, day);
SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM");
String output = formatter.format(calendar.getTime()); //eg: "Tue May"
}
在回调侦听器类中,应用
SimpleDataFormat
以文本形式获取日期和月份,例如:
Calendar now = Calendar.getInstance();
DatePicker datePicker = ... // e.g. (DatePicker) fragmentView.findViewById(R.id.datePicker);
datePicker.init(now.get(Calendar.YEAR), now.get(Calendar.MONTH), now.get(Calendar.DAY_OF_MONTH),
new DatePicker.OnDateChangedListener() {
final SimpleDateFormat mDayFormat = new SimpleDateFormat("EEE", Locale.US);
final SimpleDateFormat mMonthFormat = new SimpleDateFormat("MMM", Locale.US);
@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar cal = Calendar.getInstance();
cal.set(year, monthOfYear, dayOfMonth);
String day = mDayFormat.format(cal.getTime());
String month = mMonthFormat.format(cal.getTime());
// ... Do stuff with 'day', 'month'.
}
});
通过以下方式初始化格式,您还可以获得日、月(例如,星期五、十一月)的完整表示形式:
final SimpleDateFormat mDayFormat = new SimpleDateFormat("EEEE", Locale.US);
final SimpleDateFormat mMonthFormat = new SimpleDateFormat("MMMM", Locale.US);
谢谢我用的不是“EEE”,而是“ddd”。现在它起作用了。谢谢查找
SimpleDataFormat
的所有可用格式选项这里有一个小提示:在创建DateFormat对象时始终指定区域设置,或者使用一个静态工厂方法,例如SimpleDataFormat.getDateInstances()。否则,生成的日+月文本可能使用不同的语言。在您的情况下,我认为无论设备的语言环境如何,您都希望得到英语的结果,因此您可以安全地使用locale.US作为SimpleDataFormat c'tor的第二个参数。