From 538f7fd5d7dd193a54d2a764d65068f7c686e541 Mon Sep 17 00:00:00 2001 From: fgsfds <4870330+fgsfds@users.noreply.github.com> Date: Sun, 9 Nov 2025 04:42:02 +0500 Subject: [PATCH] Fix: Incorrect time in xray logs (#3587) * fixed timezone in xray logs * remove leading / at the address --- web/html/index.html | 4 +++- web/service/server.go | 8 ++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/web/html/index.html b/web/html/index.html index 84445fbf..1c6bb0be 100644 --- a/web/html/index.html +++ b/web/html/index.html @@ -844,9 +844,11 @@ text = `${log.Email}`; } + const { locale, timeZone } = Intl.DateTimeFormat().resolvedOptions(); + formattedLogs += ` - ${new Date(log.DateTime).toLocaleString()} + ${new Date(log.DateTime).toLocaleString(locale, { timeZone })} ${log.FromAddress} ${log.ToAddress} ${log.Inbound} diff --git a/web/service/server.go b/web/service/server.go index b7cfc3a7..d48a96c3 100644 --- a/web/service/server.go +++ b/web/service/server.go @@ -794,17 +794,17 @@ func (s *ServerService) GetXrayLogs( for i, part := range parts { if i == 0 { - dateTime, err := time.Parse("2006/01/02 15:04:05.999999", parts[0]+" "+parts[1]) + dateTime, err := time.ParseInLocation("2006/01/02 15:04:05.999999", parts[0]+" "+parts[1], time.Local) if err != nil { continue } - entry.DateTime = dateTime + entry.DateTime = dateTime.UTC() } if part == "from" { - entry.FromAddress = parts[i+1] + entry.FromAddress = strings.TrimLeft(parts[i+1], "/") } else if part == "accepted" { - entry.ToAddress = parts[i+1] + entry.ToAddress = strings.TrimLeft(parts[i+1], "/") } else if strings.HasPrefix(part, "[") { entry.Inbound = part[1:] } else if strings.HasSuffix(part, "]") {