@@ -7,6 +7,8 @@ package kotlinx.datetime.test
7
7
8
8
import kotlinx.datetime.*
9
9
import kotlin.test.*
10
+ import kotlinx.datetime.test.JSJoda.ZoneId as jtZoneId
11
+ import kotlinx.datetime.test.JSJoda.Instant as jtInstant
10
12
11
13
class TimezonesWithoutDatabaseTest {
12
14
@Test
@@ -25,6 +27,28 @@ class TimezonesWithoutDatabaseTest {
25
27
assertEquals(today.atTime(0 , 0 ).toInstant(tz), today.atStartOfDayIn(tz))
26
28
}
27
29
30
+ @Test
31
+ fun systemSameAsJoda () {
32
+ val tz = TimeZone .currentSystemDefault()
33
+ val jodaTz = jtZoneId.systemDefault()
34
+ assertEquals(jodaTz.toString(), tz.id)
35
+ val range = Instant .DISTANT_PAST .toEpochMilliseconds().. Instant .DISTANT_FUTURE .toEpochMilliseconds()
36
+ repeat(1000 ) {
37
+ val epochMilli = range.random()
38
+ val instant = Instant .fromEpochMilliseconds(epochMilli)
39
+ val jodaInstant = jtInstant.ofEpochMilli(epochMilli.toDouble())
40
+ val localDateTime = instant.toLocalDateTime(tz)
41
+ val jodaLocalDateTime = jodaInstant.atZone(jodaTz)
42
+ assertEquals(jodaLocalDateTime.year(), localDateTime.year)
43
+ assertEquals(jodaLocalDateTime.monthValue(), localDateTime.monthNumber)
44
+ assertEquals(jodaLocalDateTime.dayOfMonth(), localDateTime.dayOfMonth)
45
+ assertEquals(jodaLocalDateTime.hour(), localDateTime.hour)
46
+ assertEquals(jodaLocalDateTime.minute(), localDateTime.minute)
47
+ assertEquals(jodaLocalDateTime.second(), localDateTime.second)
48
+ assertEquals(jodaLocalDateTime.nano(), localDateTime.nanosecond.toDouble())
49
+ }
50
+ }
51
+
28
52
@Test
29
53
fun utc () {
30
54
val utc: FixedOffsetTimeZone = TimeZone .UTC
0 commit comments