use default time-zone to store floating DATE-TIMEs



  • Hello,

    in the release notes for DavX5 2.3 is written:

    use default time-zone to store floating DATE-TIMEs

    What does this precisely mean?

    When I book a ticket over an applivation, it insert floaring times in the calendar for the begin and end of the trip. I do not loke the floaring time, neithere there is a need for it here, but if I am in the right time zone, these floating times are correct.

    What will DavX5 do, if I am in a different time zone, that the timezone where the trip starts, when I add the trip to my calendar? Will the floating DTSTART and DTEND be converted to the currently local for me time zone, thus being incorrect related to the actual departure time? This would invalidate the time, making it even less correct than the floatimg time in DTSTART/DTEND.

    Regards
    Дилян


  • developer

    Android doesn’t support floating time at all (EVENT_TIMEZONE must be set).

    Previously, floating times were stored in UTC, now (DAVx⁵ ≥ 2.3) floating times are stored in the device default time zone. So if you enter a flight from 13:00 floating time to 16:00 floating time, it

    • was previously stored and viewed as 13:00 UTC to 16:00 UTC, and
    • is now (DAVx⁵ ≥ 2.3) be stored and viewed as 13:00 default time zone to 16:00 default time zone.

    Does that help?



  • I cannot confirm this: I used an Android application (FlixBus) to add event to an Android calendar. Then this event was uploaded using DavX5 and on the server contains:
    DTSTART:20190405T214500
    DTEND:20190405T230500

    so somehow there was support for floating time. And indeed, as start is meant 21:45 UTC+2, so converting this to 21:45 UTC is wrong.



  • With Android 2.4 repearing the whole process still PUTs to the server DTSTART:20190405T214400. So on which workflow the behavioir has changed?


  • developer

    @Дилян-Палаузов said in use default time-zone to store floating DATE-TIMEs:

    With Android 2.4 repearing the whole process still PUTs to the server DTSTART:20190405T214400. So on which workflow the behavioir has changed?

    If you view/edit this event with a calendar app, this calendar app will show the event

    • as 21:44 UTC when the event was synced with DAVx⁵ <2.3
    • as 21:44 device default time zone when the event was synced with DAVx⁵ ≥ 2.3

    As soon as you edit the event, it will get a time zone, because floating time is not really supported by Android. It is possible to store events without timezone column, but according to the documentation, a time zone is required, and this is what all calendar apps I know need.

    So, if you edit the event (for instance, the name), it will be synced as

    • 21:44 UTC with DAVx⁵ < 2.3
    • 21:44 device default time zone with DAVx⁵ ≥ 2.3

  • developer

    Just saw that the Android calendar provider references “floating times” two times, and treats them as UTC internally, but without setting the time zone column.

    So, theoretically, there is support for floating times, but

    1. I don’t know any calendar app supporting it,
    2. CalendarContract.Eventsdocs say there must be a time zone set.

    Do you know calendar apps which are able to handle such floating times?



  • I used that app to create an event with floating times. Then I opened it in Google Calendar. It shows as timezone GMT+2. I added an attendee, saved the event and uploaded it with DavX5. On the server it is still in floating time. This is not a problem (of DavX5).

    Indeed, after syncing with DavX5 2.4 the timezone was renamed to Central European Summer Time.

    Does DavX5 send to the server the floating time and only after that add timezone to the device?

    I think it is better to keep it in floating time, unless DavX5 is sure in which time zone the departure really is.


Log in to reply
 

Similar topics

  • 7
  • 14
  • 1