Android 正在尝试为事件设置时区

Android 正在尝试为事件设置时区,android,google-calendar-api,Android,Google Calendar Api,正如标题所说,我正在创建一个事件,但它似乎没有设置正确的时区。。。我做错了什么?作为参考,我使用12:00PM作为开始时间。开始时间显示正确,但时区显示不正确。我不想将时间转换为用户/设备的时区 Calendar cal = new GregorianCalendar(); cal.setTime(tDate); Intent intent = new Intent(Intent.ACTION_EDIT); in

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

        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);

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

  • 您应该使用
    Intent.ACTION\u INSERT
    操作
  • 您应该使用常量通过
    setData()
    设置URI
  • 您应该使用常量,而不是
    “beginTime”
  • 您应该使用常量而不是
    事件。全天

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

我也有同样的问题。我尝试了
TimeZone.getAvailableIDs()
中的任何东西,但没有任何运气。tDate变量它包含的时间,转换时间的最佳方法是首先将其转换为UTC时区,然后再将其转换为您的时区,因此将tDate转换为UTC,然后再转换为您的时区希望这对您有用