File tree Expand file tree Collapse file tree 1 file changed +13
-2
lines changed
src/main/kotlin/com/philjay Expand file tree Collapse file tree 1 file changed +13
-2
lines changed Original file line number Diff line number Diff line change 11package com.philjay
22
33import java.time.Instant
4+ import java.time.LocalDate
45import java.time.LocalDateTime
56import java.time.ZoneOffset
67import java.time.format.DateTimeFormatter
8+ import java.time.temporal.TemporalAccessor
9+ import java.time.temporal.TemporalQuery
10+
711
812open class RRule () {
913
@@ -119,7 +123,14 @@ open class RRule() {
119123 count = components[i].toIntOrNull() ? : 1
120124 } else if (component == " UNTIL" ) {
121125 i + = 1
122- until = LocalDateTime .parse(components[i], dateFormatter).toInstant(ZoneOffset .UTC )
126+ val temporalAccessor = dateFormatter.parseBest(component,
127+ TemporalQuery <Any > { temporal: TemporalAccessor ? -> LocalDateTime .from(temporal) },
128+ TemporalQuery <Any > { temporal: TemporalAccessor ? -> LocalDate .from(temporal) })
129+ if (temporalAccessor is LocalDateTime ) {
130+ until = temporalAccessor.toInstant(ZoneOffset .UTC )
131+ } else {
132+ until = (temporalAccessor as LocalDate ).atStartOfDay().toInstant(ZoneOffset .UTC )
133+ }
123134 }
124135
125136 if (component == " WKST" ) {
@@ -209,6 +220,6 @@ open class RRule() {
209220 }
210221
211222 companion object {
212- private val dateFormatter = DateTimeFormatter .ofPattern(" yyyyMMdd'T'HHmmss'Z'" ).withZone(ZoneOffset .UTC )
223+ private val dateFormatter = DateTimeFormatter .ofPattern(" yyyyMMdd[ 'T'HHmmss'Z'] " ).withZone(ZoneOffset .UTC )
213224 }
214225}
You can’t perform that action at this time.
0 commit comments