Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bitfireAT/ical4android.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt')
-rw-r--r--src/main/java/at/bitfire/ical4android/util/TimeApiExtensions.kt19
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)