Android CalendarView:如何以正确的格式获取日期?

时间:2012-08-25 10:35:02

标签: android date-format calendarview

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

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

我习惯了android 2.2中的datepicker而且我不熟悉calendarview,也找不到它。有没有人知道这方面的解决方案?

4 个答案:

答案 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);
    }
});