过去几天我一直在寻找从android 4.0中获取日历视图中'可读'日期的方法。我无法找到适合我的问题的解决方案或示例。我确实在几毫秒内得到了它,但没有采用日期格式。
我的问题是:我有一个日历视图,我希望用户选择日期,在日志格式中显示日期格式yy-mm-dd。
我习惯了android 2.2中的datepicker而且我不熟悉calendarview,也找不到它。有没有人知道这方面的解决方案?
答案 0 :(得分:5)
好的,这是如何做到这一点。当您在活动中触发日历视图活动或日历视图时,它会将日期设置为当前日期(意味着今天)。要获取当前日期,只需使用java api提供的Calendar
对象来获取以下日期示例:
Calendar date = Calendar.getInstance();
// for your date format use
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd");
// set a string to format your current date
String curDate = sdf.format(date.getTime());
// print the date in your log cat
Log.d("CUR_DATE", curDate);
要更改日期,您必须执行此操作
CalendarView myCalendar = (CalendarView) findViewById(R.id.myCalenderid);
myCalendar.setOnDateChangeListener(myCalendarListener);
OnDateChangeListener myCalendarListener = new OnDateChangeListener(){
public void onSelectedDayChange(CalendarView view, int year, int month, int day){
// add one because month starts at 0
month = month + 1;
// output to log cat **not sure how to format year to two places here**
String newDate = year+"-"+month+"-"+day;
Log.d("NEW_DATE", newDate);
}
}
答案 1 :(得分:0)
long date = calenderView.getDate();
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(date);
int Year = calendar.get(Calendar.YEAR);
int Month = calendar.get(Calendar.MONTH);
int Day = calendar.get(Calendar.DAY_OF_MONTH);
//customize According to Your requirement
String finalDate=Year+"/"+Month+"/"+Day;
答案 2 :(得分:0)
您应该使用SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String selectedDate = sdf.format(new Date(calendar.getDate()));
答案 3 :(得分:0)
kandroidj的答案有助于创建日期,但不能创建正确格式的日期。 因此,要格式化所选日期:
calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
@Override
public void onSelectedDayChange(CalendarView view, int year, int month,
int dayOfMonth) {
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, dayOfMonth);
String sDate = sdf.format(calendar.getTime());
Log.d(TAG, "sDate formatted: " + sDate);
}
});