6

就像标题所说,我正在创建一个事件,它似乎没有设置正确的时区......我做错了什么?作为参考,我使用 12:00 PM 作为开始时间。开始时间显示正确,但时区显示不正确。我不想将时间转换为用户/设备的时区。

        Calendar cal = new GregorianCalendar();         
        cal.setTime(tDate);

        Intent intent = new Intent(Intent.ACTION_EDIT);
        intent.setType("vnd.android.cursor.item/event");
        intent.putExtra("beginTime", cal.getTimeInMillis());
        intent.putExtra(Events.ALL_DAY, false);
        intent.putExtra(Events.TITLE, "Title goes here");
        intent.putExtra(Events.EVENT_LOCATION, "Los Angeles");
        intent.putExtra(Events.EVENT_TIMEZONE, "America/Los_Angeles");
        intent.putExtra(Events.DESCRIPTION, "Test");
        startActivity(intent);
4

2 回答 2

0

添加事件的意图方法(如此所述)似乎不支持额外的时区 - 至少在给出的示例中不支持。以下是基于该示例的一些指针:

如果您需要设置时区,您可以使用 ContentResolver 来添加事件,而无需使用 intent 方法。

于 2014-11-20T18:57:57.030 回答
0

这可能会迟到,但它现在可以工作(使用 测试compileSdkVersion 31)。

Intent createEventIntent = new Intent(Intent.ACTION_INSERT)
    .setData(CalendarContract.Events.CONTENT_URI)
    .putExtra(CalendarContract.Events.EVENT_TIMEZONE, "America/Cayman")
    ...;
  • 要查看可用时区列表:TimeZone.getAvailableIDs()
  • 要使用当前时区:TimeZone.getDefault().getID().

[1]使用意图插入事件

于 2021-10-17T19:34:37.017 回答