Skip to content

Commit 096f17f

Browse files
Merge pull request eugenp#5234 from RanjeetKaur17/develop.0.3.0
Adding Examples for ZonedDateTime, OffsetDateTime and OffsetTime
2 parents 79c0562 + e8a48fb commit 096f17f

6 files changed

Lines changed: 136 additions & 0 deletions

File tree

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.baeldung.zoneddatetime;
2+
3+
import java.time.LocalDateTime;
4+
import java.time.OffsetDateTime;
5+
import java.time.ZoneId;
6+
import java.time.ZoneOffset;
7+
8+
public class OffsetDateTimeExample {
9+
10+
public OffsetDateTime getCurrentTimeByZoneOffset(String region) {
11+
LocalDateTime now = LocalDateTime.now();
12+
ZoneId zone = ZoneId.of(region);
13+
ZoneOffset zoneOffSet= zone.getRules().getOffset(now);
14+
OffsetDateTime date = OffsetDateTime.now(zoneOffSet);
15+
return date;
16+
}
17+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.baeldung.zoneddatetime;
2+
3+
import java.time.LocalDateTime;
4+
import java.time.OffsetTime;
5+
import java.time.ZoneId;
6+
import java.time.ZoneOffset;
7+
8+
public class OffsetTimeExample {
9+
10+
public OffsetTime getCurrentTimeByZoneOffset(String region) {
11+
LocalDateTime now = LocalDateTime.now();
12+
ZoneId zone = ZoneId.of(region);
13+
ZoneOffset zoneOffSet = zone.getRules()
14+
.getOffset(now);
15+
OffsetTime time = OffsetTime.now(zoneOffSet);
16+
return time;
17+
}
18+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.baeldung.zoneddatetime;
2+
3+
import java.time.ZoneId;
4+
import java.time.ZonedDateTime;
5+
6+
public class ZoneDateTimeExample {
7+
8+
public ZonedDateTime getCurrentTimeByZoneId(String region) {
9+
ZoneId zone = ZoneId.of(region);
10+
ZonedDateTime date = ZonedDateTime.now(zone);
11+
return date;
12+
}
13+
14+
public ZonedDateTime convertZonedDateTime(ZonedDateTime sourceDate, String destZone) {
15+
16+
ZoneId destZoneId = ZoneId.of(destZone);
17+
ZonedDateTime destDate = sourceDate.withZoneSameInstant(destZoneId);
18+
19+
return destDate;
20+
}
21+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.baeldung.zoneddatetime;
2+
3+
import static org.junit.Assert.assertTrue;
4+
5+
import java.time.LocalDateTime;
6+
import java.time.OffsetDateTime;
7+
import java.time.ZoneId;
8+
9+
import org.junit.Test;
10+
11+
public class OffsetDateTimeExampleUnitTest {
12+
13+
OffsetDateTimeExample offsetDateTimeExample = new OffsetDateTimeExample();
14+
15+
@Test
16+
public void givenZoneOffset_whenGetCurrentTime_thenResultHasZone() {
17+
String zone = "Europe/Berlin";
18+
OffsetDateTime time = offsetDateTimeExample.getCurrentTimeByZoneOffset(zone);
19+
20+
assertTrue(time.getOffset()
21+
.equals(ZoneId.of(zone)
22+
.getRules()
23+
.getOffset(LocalDateTime.now())));
24+
}
25+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.baeldung.zoneddatetime;
2+
3+
import static org.junit.Assert.assertTrue;
4+
5+
import java.time.LocalDateTime;
6+
import java.time.OffsetTime;
7+
import java.time.ZoneId;
8+
9+
import org.junit.Test;
10+
11+
public class OffsetTimeExampleUnitTest {
12+
13+
OffsetTimeExample offsetTimeExample = new OffsetTimeExample();
14+
15+
@Test
16+
public void givenZoneOffset_whenGetCurrentTime_thenResultHasZone() {
17+
String zone = "Europe/Berlin";
18+
OffsetTime time = offsetTimeExample.getCurrentTimeByZoneOffset(zone);
19+
20+
assertTrue(time.getOffset()
21+
.equals(ZoneId.of(zone)
22+
.getRules()
23+
.getOffset(LocalDateTime.now())));
24+
}
25+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.baeldung.zoneddatetime;
2+
3+
import static org.junit.Assert.assertTrue;
4+
5+
import java.time.ZoneId;
6+
import java.time.ZonedDateTime;
7+
8+
import org.junit.Test;
9+
10+
public class ZoneDateTimeExampleUnitTest {
11+
12+
ZoneDateTimeExample zoneDateTimeExample = new ZoneDateTimeExample();
13+
14+
@Test
15+
public void givenZone_whenGetCurrentTime_thenResultHasZone() {
16+
String zone = "Europe/Berlin";
17+
ZonedDateTime time = zoneDateTimeExample.getCurrentTimeByZoneId(zone);
18+
assertTrue(time.getZone()
19+
.equals(ZoneId.of(zone)));
20+
}
21+
22+
@Test
23+
public void givenZones_whenConvertDateByZone_thenGetConstantDiff() {
24+
String sourceZone = "Europe/Berlin";
25+
String destZone = "Asia/Tokyo";
26+
ZonedDateTime sourceDate = zoneDateTimeExample.getCurrentTimeByZoneId(sourceZone);
27+
ZonedDateTime destDate = zoneDateTimeExample.convertZonedDateTime(sourceDate, destZone);
28+
assertTrue(sourceDate.toInstant().compareTo(destDate.toInstant()) == 0);
29+
}
30+
}

0 commit comments

Comments
 (0)