From 36d6885162566e2b3041d470b45fac0206334d01 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sat, 11 Mar 2017 17:22:50 +0100 Subject: fixed entity time for timezones with minutes !=0 --- .../java/de/pixart/messenger/generator/IqGenerator.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/main/java/de/pixart/messenger/generator/IqGenerator.java') diff --git a/src/main/java/de/pixart/messenger/generator/IqGenerator.java b/src/main/java/de/pixart/messenger/generator/IqGenerator.java index 6658f1a21..e919b437e 100644 --- a/src/main/java/de/pixart/messenger/generator/IqGenerator.java +++ b/src/main/java/de/pixart/messenger/generator/IqGenerator.java @@ -15,6 +15,7 @@ import java.security.cert.CertificateEncodingException; import java.security.cert.X509Certificate; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.Set; import java.util.TimeZone; import java.util.UUID; @@ -77,9 +78,16 @@ public class IqGenerator extends AbstractGenerator { time.addChild("utc").setContent(getTimestamp(now)); TimeZone ourTimezone = TimeZone.getDefault(); long offsetSeconds = ourTimezone.getOffset(now) / 1000; - long offsetMinutes = offsetSeconds % (60 * 60); - long offsetHours = offsetSeconds / (60 * 60); - time.addChild("tzo").setContent(String.format("%02d", offsetHours) + ":" + String.format("%02d", offsetMinutes)); + long offsetMinutes = Math.abs((offsetSeconds % 3600) / 60); + long offsetHours = offsetSeconds / 3600; + String hours; + if (offsetHours < 0) { + hours = String.format(Locale.US, "%03d", offsetHours); + } else { + hours = String.format(Locale.US, "%02d", offsetHours); + } + String minutes = String.format(Locale.US, "%02d", offsetMinutes); + time.addChild("tzo").setContent(hours + ":" + minutes); return packet; } -- cgit v1.2.3