From fdd9d435a2208ff83922d8033ff5fd84a2381f22 Mon Sep 17 00:00:00 2001 From: Zihlu Wang Date: Mon, 7 Aug 2023 08:13:09 +0800 Subject: [PATCH] perf(webcal): Optimised the resolve process. According to RFC-5545 Specification, the timezone is marked in the field DTEND. --- .../main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java | 3 ++- .../java/cn/org/codecrafters/webcal/test/TestWebCalendar.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java b/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java index 598a32f..e700900 100644 --- a/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java +++ b/webcal/src/main/java/cn/org/codecrafters/webcal/WebCalendarEvent.java @@ -272,7 +272,8 @@ public final class WebCalendarEvent extends WebCalendarNode { Optional.ofNullable(duration) .map((item) -> "DURATION:PT" + item.getSeconds() + "S\n").orElse("") + Optional.ofNullable(end) - .map((item) -> "DTEND:" + end.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) + "\n").orElse("") + + .map((item) -> "DTEND" + Optional.ofNullable(timezone).map(tz -> ";TZID=" + tz).orElse("") + ":" + + end.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME) + "\n").orElse("") + Optional.ofNullable(classification) .map((item) -> "CLASS:" + item.getClassification() + "\n").orElse("") + Optional.ofNullable(comment).map((item) -> "COMMENT:" + item + "\n").orElse("") + diff --git a/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java b/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java index c9224b6..195e065 100644 --- a/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java +++ b/webcal/src/test/java/cn/org/codecrafters/webcal/test/TestWebCalendar.java @@ -46,7 +46,7 @@ public class TestWebCalendar { .setClassification(Classification.PUBLIC) .setStart(LocalDateTime.of(2023, 8, 6, 0, 0, 0)) .setEnd(LocalDateTime.of(2023, 8, 6, 8, 0, 0)) - .setLocation("湖南省长沙市天心区碧云路60号") + .setLocation("Hong Kong University, Pokfulam, Central West, Hong Kong S.A.R") .setUid(UUID.randomUUID().toString()) .setTimezone("Asia/Hong_Kong"));