diff options
Diffstat (limited to 'src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt')
-rw-r--r-- | src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt b/src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt index f9b1ac1..9ff5529 100644 --- a/src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt +++ b/src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt @@ -4,7 +4,6 @@ package at.bitfire.ical4android.util -import at.bitfire.ical4android.DateUtils import net.fortuna.ical4j.model.Date import net.fortuna.ical4j.model.DateTime import net.fortuna.ical4j.util.TimeZones @@ -31,8 +30,15 @@ object TimeApiExtensions { /** * [TimeZone.toZoneId] can't be used with the current desugaring library yet! + * + * @return [ZoneId] of the time zone; [ZoneOffset.UTC] if the time zone equals to [TimeZones.getUtcTimeZone] */ - fun TimeZone.toZoneIdCompat(): ZoneId = ZoneId.of(id) + fun TimeZone.toZoneIdCompat(): ZoneId { + return if (this == TimeZones.getUtcTimeZone()) + ZoneOffset.UTC + else + ZoneId.of(id) + } /***** Dates *****/ @@ -69,6 +75,15 @@ object TimeApiExtensions { return Date(cal) } + /** + * Converts this zoned date-time (date/time with specific time zone) to an + * ical4j [DateTime] object. + * + * Sets UTC flag ([DateTime.isUtc], means `...ThhmmddZ` format) when this zone-date time object has a + * time zone of [ZoneOffset.UTC]. + * + * @return ical4j [DateTime] of the given zoned date-time + */ fun ZonedDateTime.toIcal4jDateTime(): DateTime { val date = DateTime(toEpochSecond() * MILLIS_PER_SECOND) if (zone == ZoneOffset.UTC) |