首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日历提醒

日历提醒
EN

Stack Overflow用户
提问于 2017-11-10 10:54:50
回答 1查看 240关注 0票数 1

我已经在android中创建了日历提醒程序,但它是我试图修复的bug:

我想设定时间提醒:场景1:10和场景2:6 6PM。

每当我创建提醒和设置时间时,总是为AM而不是PM设置--如何配置AM和PM过滤器--我尝试了设置日历AM格式,但这似乎不起作用

下面是我的代码片段:

代码语言:javascript
复制
private void setReminderToCalendar() {

    try {
        if (format.trim().toLowerCase().equals("am")) {
            calendar.set(Calendar.AM_PM, Calendar.AM);
        } else {
            calendar.set(Calendar.AM_PM, Calendar.PM);
        }
        calendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(hr));
        calendar.set(Calendar.MINUTE, Integer.parseInt(min));
        calendar.add(Calendar.HOUR, -2); // create reminder 2 hr ago
        insertReminderInCalendar(FindingVendorAndTimelineActivity.this, calendar);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public static void insertReminderInCalendar(Activity activity, Calendar cal) {

    Uri EVENTS_URI = Uri.parse(getCalendarUriBase(true) + "events");
    ContentResolver cr = activity.getContentResolver();
    TimeZone timeZone = TimeZone.getDefault();

    /** Inserting an event in calendar. */
    ContentValues values = new ContentValues();
    values.put(CalendarContract.Events.CALENDAR_ID, 1);
    values.put(CalendarContract.Events.TITLE, "  Order Configured");
    values.put(CalendarContract.Events.DESCRIPTION, "You have schedule roti order today");
    values.put(CalendarContract.Events.ALL_DAY, 0);
    // event starts at 0 minutes from now
    values.put(CalendarContract.Events.DTSTART, cal.getTimeInMillis());
    // ends 60 minutes from now
    values.put(CalendarContract.Events.DTEND, cal.getTimeInMillis() + 2 * 60 * 1000);
    values.put(CalendarContract.Events.EVENT_TIMEZONE, timeZone.getID());
    values.put(CalendarContract.Events.HAS_ALARM, 1);
    Uri event = cr.insert(EVENTS_URI, values);

    // Display event id.
    Toast.makeText(RotiApplication.getInstance(), "  scheduled order is been added to you calendar", Toast.LENGTH_SHORT).show();

    /** Adding reminder for event added. */
    Uri REMINDERS_URI = Uri.parse(getCalendarUriBase(true) + "reminders");
    values = new ContentValues();
    values.put(CalendarContract.Reminders.EVENT_ID, Long.parseLong(event.getLastPathSegment()));
    values.put(CalendarContract.Reminders.METHOD, CalendarContract.Reminders.METHOD_ALERT);
    values.put(CalendarContract.Reminders.MINUTES, 10);
    cr.insert(REMINDERS_URI, values);
}

如何在Android日历事件中配置AM / PM过滤器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 11:11:32

calendar.set(Calendar.HOUR_OF_DAY,Integer.parseInt(hr));

使用HOUR_OF_DAY将时间设置为24小时格式(下午6点将是18小时)。使用HOUR_OF_DAY将使使用am/pm毫无用处。使用24小时格式并手动设置am/pm。日历将自动转换为上午/下午格式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47221161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档