在过去的几天里,我一直在寻找从 android 4.0 的日历视图中获取“可读”日期的方法。我无法找到适合我的问题的解决方案或示例。我确实在几毫秒内得到了它,但不是日期格式。
我的问题是:我有一个日历视图,我想要用户选择的日期,在 logcat 中以日期格式 yy-mm-dd 显示。
我习惯了 android 2.2 的 datepicker,我对 calendarview 不熟悉,也找不到太多关于它的信息。有谁知道这个的解决方案?
在过去的几天里,我一直在寻找从 android 4.0 的日历视图中获取“可读”日期的方法。我无法找到适合我的问题的解决方案或示例。我确实在几毫秒内得到了它,但不是日期格式。
我的问题是:我有一个日历视图,我想要用户选择的日期,在 logcat 中以日期格式 yy-mm-dd 显示。
我习惯了 android 2.2 的 datepicker,我对 calendarview 不熟悉,也找不到太多关于它的信息。有谁知道这个的解决方案?
好的,这里是如何做到这一点。当您触发您的日历视图活动或活动中的日历视图时,它会将日期设置为当前日期(即今天)。要获取此当前日期,只需使用Calendar
java api 提供的对象来获取以下日期示例:
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);
}
}
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);
}
});
你应该使用SimpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String selectedDate = sdf.format(new Date(calendar.getDate()));
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;