1
1
package javatimefun.zoneddatetime
2
2
3
- import java.time.Instant
4
- import java.time.LocalDateTime
5
- import java.time.Month
6
- import java.time.ZoneId
7
- import java.time.ZonedDateTime
8
- import java.util.Calendar
9
- import java.util.Date
3
+ import java.time.*
10
4
11
5
/* *
12
6
* Contains helper functions that only serve to create new ZonedDateTimes.
13
7
* Creation methods do not include parsing methods.
14
8
*/
15
9
object ZonedDateTimeUtil {
16
10
17
- private val UTC get() = ZoneId .of(" UTC" )
18
-
19
11
/* *
20
12
* @param year Year, ie, 2020.
21
13
* @param month Month with range 1-12, i.e. 1 for January.
@@ -38,7 +30,10 @@ object ZonedDateTimeUtil {
38
30
useSystemTimeZone : Boolean = true
39
31
): ZonedDateTime {
40
32
val localDateTime = LocalDateTime .of(year, Month .of(month), day, hourIn24, minute, second, nano)
41
- return ZonedDateTime .of(localDateTime, if (useSystemTimeZone) ZoneId .systemDefault() else UTC )
33
+ return ZonedDateTime .of(
34
+ localDateTime,
35
+ if (useSystemTimeZone) ZoneId .systemDefault() else ZoneOffset .UTC
36
+ )
42
37
}
43
38
44
39
/* *
@@ -71,28 +66,8 @@ object ZonedDateTimeUtil {
71
66
* @return ZonedDateTime.
72
67
*/
73
68
fun new (epochMilliseconds : Long , useSystemTimeZone : Boolean = true): ZonedDateTime =
74
- getZonedDateTimeFromInstant(Instant .ofEpochMilli(epochMilliseconds), useSystemTimeZone)
75
-
76
- /* *
77
- * @param date A wrapper of Epoch time in UTC.
78
- * @param useSystemTimeZone If true, converts to time zone of the device, else leaves as UTC.
79
- * @return ZonedDateTime.
80
- */
81
- fun new (date : Date , useSystemTimeZone : Boolean = true): ZonedDateTime =
82
- getZonedDateTimeFromInstant(date.toInstant(), useSystemTimeZone)
83
-
84
- /* *
85
- * @param calendar Calendar, a date time variable that supports time zones.
86
- * @param useSystemTimeZone If true, converts to time zone of the device, else leaves as is on calendar.
87
- * @return ZonedDateTime.
88
- */
89
- fun new (calendar : Calendar , useSystemTimeZone : Boolean = true): ZonedDateTime {
90
- if (useSystemTimeZone) {
91
- return getZonedDateTimeFromInstant(calendar.toInstant(), true )
92
- }
93
- return ZonedDateTime .ofInstant(calendar.toInstant(), ZoneId .of(calendar.timeZone.id))
94
- }
95
-
96
- private fun getZonedDateTimeFromInstant (instant : Instant , useSystemTimeZone : Boolean ): ZonedDateTime =
97
- ZonedDateTime .ofInstant(instant, if (useSystemTimeZone) ZoneId .systemDefault() else UTC )
69
+ ZonedDateTime .ofInstant(
70
+ Instant .ofEpochMilli(epochMilliseconds),
71
+ if (useSystemTimeZone) ZoneId .systemDefault() else ZoneOffset .UTC
72
+ )
98
73
}
0 commit comments