package de.thedevstack.conversationsplus.xmpp.time; import java.util.Locale; import java.util.TimeZone; import de.thedevstack.conversationsplus.generator.AbstractGenerator; import de.thedevstack.conversationsplus.xml.Element; import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket; /** * Representation of an software version packet as defined in XEP-0202. * @see http://xmpp.org/extensions/xep-0202.html */ public class TimePacket extends IqPacket { public static final String NAMESPACE = "urn:xmpp:time"; TimePacket() { super(IqPacket.TYPE.RESULT); Element time = this.addChild("time", NAMESPACE); final long now = System.currentTimeMillis(); time.addChild("utc").setContent(AbstractGenerator.getTimestamp(now)); TimeZone ourTimezone = TimeZone.getDefault(); long offsetSeconds = ourTimezone.getOffset(now) / 1000; 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); } }