Browse Source

Fix handling of MessageTags times when we are not at UTC.

MessageTags time is in UTC, LocalDateTime doesn't care for the timezone
when parsing, so we were treating the UTC time as the local time rather
then adjusting from UTC to Local.

Now we adjust it properly.
pull/154/head
Shane Mc Cormack 7 years ago
parent
commit
bb1bafbc83
1 changed files with 2 additions and 0 deletions
  1. 2
    0
      irc/src/main/java/com/dmdirc/parser/irc/IRCParser.java

+ 2
- 0
irc/src/main/java/com/dmdirc/parser/irc/IRCParser.java View File

@@ -62,6 +62,7 @@ import java.security.SecureRandom;
62 62
 import java.time.Instant;
63 63
 import java.time.LocalDateTime;
64 64
 import java.time.ZoneId;
65
+import java.time.ZoneOffset;
65 66
 import java.time.format.DateTimeFormatter;
66 67
 import java.time.format.DateTimeParseException;
67 68
 import java.util.ArrayList;
@@ -1133,6 +1134,7 @@ public class IRCParser extends BaseSocketAwareParser implements SecureParser, En
1133 1134
             try {
1134 1135
                 lineTS = LocalDateTime.parse(line.getTags().get("time"),
1135 1136
                         DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
1137
+                lineTS = lineTS.atOffset(ZoneOffset.UTC).atZoneSameInstant(ZoneId.systemDefault()).toLocalDateTime();
1136 1138
             } catch (final DateTimeParseException pe) { /* Do nothing. */ }
1137 1139
         }
1138 1140
 

Loading…
Cancel
Save