3

在过去的几天里,我一直在寻找从 android 4.0 的日历视图中获取“可读”日期的方法。我无法找到适合我的问题的解决方案或示例。我确实在几毫秒内得到了它,但不是日期格式。

我的问题是:我有一个日历视图,我想要用户选择的日期,在 logcat 中以日期格式 yy-mm-dd 显示。

我习惯了 android 2.2 的 datepicker,我对 calendarview 不熟悉,也找不到太多关于它的信息。有谁知道这个的解决方案?

4

4 回答 4

6

好的,这里是如何做到这一点。当您触发您的日历视图活动或活动中的日历视图时,它会将日期设置为当前日期(即今天)。要获取此当前日期,只需使用Calendarjava 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);
}
}
于 2012-10-11T16:47:38.337 回答
3

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);
    }
});
于 2020-11-17T08:35:41.897 回答
1

你应该使用SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String selectedDate = sdf.format(new Date(calendar.getDate()));
于 2018-08-09T09:12:52.173 回答
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;
于 2017-02-02T11:48:00.853 回答