如何以特定格式设置日期和时间

时间:2014-02-01 07:25:02

标签: android datetime

使用此代码我得到java.lang.IllegalArgumentException: DTSTART cannot be empty。此错误来自:

Calendar calender = Calendar.getInstance();
                ContentResolver cr = getContentResolver();
                ContentValues values = new ContentValues();
                String eventTime="12:00:AM 11:59:PM";
                String[] time=eventTime.split(" ");
                String[] execttime=time[0].split(":");
                String eventStartDate="06 Feb 2014"+" " + execttime[0]+":"+execttime[1]+":00";
                long startDate=getDateCurrentMillis(eventStartDate);
                values.put(CalendarContract.Events.DTSTART,
                        startDate);
                Uri EVENTS_URI = Uri.parse(getCalendarUriBase(EventDetail.this)+ "events");

    public static long getDateCurrentMillis(String startDate) {

        SimpleDateFormat sfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",

        Locale.getDefault());

        sfd.setTimeZone(TimeZone.getTimeZone("UTC"));

        try {

            Date d = sfd.parse(startDate);

            return d.getTime();

        } catch (Exception e) {

            System.out.println("");

        }    
    return 0;
        }

3 个答案:

答案 0 :(得分:0)

试试这个:

DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy, h:mm a");
String date = df.format(Calendar.getInstance().getTime());

答案 1 :(得分:0)

问题出现在getDateCurrentMillis方法中。是否由于SimpleDateFormat中指定的格式不正确而无法解析日期,导致始终返回0。在DTSTART中传递0会导致您的应用崩溃。

看来你的eventStartDate的格式是这样的

String date = "06 Feb 2014 12:00:00";

所以以这样的方式制作你的SimpleDateFormat对象

SimpleDateFormat sfd = new SimpleDateFormat("dd MMM yyyy HH:mm:ss", Locale.getDefault());

如果我正确观察了您的日期格式,请告诉我。如果在传递之前没有打印它并在SimpleDateFormat对象中进行相应更改或在评论中发布,我将进行必要的更改。

答案 2 :(得分:0)

 //to pick date 
  DatePickerDialog.OnDateSetListener d = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
        myCalendar.set(Calendar.YEAR, year);
        myCalendar.set(Calendar.MONTH, monthOfYear);
        myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        updateLabel();
        }
        }



//to pick time

    TimePickerDialog.OnTimeSetListener t = new TimePickerDialog.OnTimeSetListener() {
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            myCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
            myCalendar.set(Calendar.MINUTE, minute);
            updateLabel();
        }
        };

有关更多信息,请使用此链接

http://www.java-samples.com/showtutorial.php?tutorialid=1520