gpt4 book ai didi

Android 日历时区不随 CalendarContract 改变

转载 作者:行者123 更新时间:2023-11-29 21:33:00 25 4
gpt4 key购买 nike

我正在使用以下代码向日历添加事件

    Intent intent = new Intent(Intent.ACTION_INSERT);
intent.setType("vnd.android.cursor.item/event");
intent.putExtra(Events.TITLE, "my event title");
intent.putExtra(Events.EVENT_LOCATION, "my city");
intent.putExtra(Events.DESCRIPTION, "description of this event");

intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, dep.getTimeInMillis());
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, arr.getTimeInMillis());

intent.putExtra(CalendarContract.Events.EVENT_TIMEZONE, departureTimeZone);
intent.putExtra(CalendarContract.Events.EVENT_END_TIMEZONE, arrivalTimeZone);

// Making it private and shown as busy
intent.putExtra(Events.ACCESS_LEVEL, Events.ACCESS_PRIVATE);
intent.putExtra(Events.AVAILABILITY, Events.AVAILABILITY_BUSY);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

CoreApplication.getContext().startActivity(intent);

问题是它拾取的时间是比我原来发送的时间短一小时时区始终设置为设备的时区,如“中欧夏令时 GMT +2”

请帮忙!!!!!!!!!!!!!!!!

最佳答案

遇到同样的麻烦,但找到了出路。
时区默认设置为设备的时区。要更改此设置并将其设置为特定时区,请使用 getRawOffset() 属性。
此方法计算当前时间的毫秒数。因此,您可以为指定时区添加毫秒数,并为默认时区减去毫秒数。

当我试图将其更改为 timeZone 'GMT_ID'

values.put(CalendarContract.Events.DTSTART, startDate.getTime()  +TimeZone.getTimeZone(GMT_ID).getRawOffset() -TimeZone.getDefault().getRawOffset());

希望这对您有所帮助。

关于Android 日历时区不随 CalendarContract 改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19002337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com