Skip to content

Instantly share code, notes, and snippets.

@dmikurube
Last active April 13, 2020 05:32
Show Gist options
  • Save dmikurube/59d2480a7b6ec380b88159bd358209d4 to your computer and use it in GitHub Desktop.
Save dmikurube/59d2480a7b6ec380b88159bd358209d4 to your computer and use it in GitHub Desktop.
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'joda-time:joda-time:2.9.2'
}
sourceSets {
main {
java {
srcDir '.'
}
}
}
test {
testLogging {
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
}
}
task run(type:JavaExec) {
main = project.hasProperty('main') ? project.getProperty('main') : 'ConvertLocalUTC'
classpath = sourceSets.main.runtimeClasspath
}
import java.time.Instant;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import org.joda.time.DateTimeZone;
public class ConvertLocalUTC {
public static void main(final String[] args) {
convertUTCToLocal();
convertLocalToUTC();
}
private static void convertUTCToLocal() {
System.out.println("convertUTCToLocal:");
final long epoch = 1586754665L;
final String sessionTimeZone = "America/Los_Angeles";
final DateTimeZone jodaZone = DateTimeZone.forID(sessionTimeZone);
final ZoneId javaZone = ZoneId.of(sessionTimeZone);
System.out.println("Orig: " + epoch);
final long reconvertedJoda = jodaZone.convertUTCToLocal(epoch * 1000L) / 1000L;
System.out.println("Joda: " + reconvertedJoda);
final long reconvertedJava = ZonedDateTime.ofInstant(Instant.ofEpochSecond(epoch), javaZone)
.withZoneSameLocal(ZoneOffset.UTC).toEpochSecond();
System.out.println("Java: " + reconvertedJava);
System.out.println(reconvertedJoda == reconvertedJava);
}
private static void convertLocalToUTC() {
System.out.println("convertLocalToUTC:");
final long epoch = 1586754665L;
final String sessionTimeZone = "America/Los_Angeles";
final DateTimeZone jodaZone = DateTimeZone.forID(sessionTimeZone);
final ZoneId javaZone = ZoneId.of(sessionTimeZone);
System.out.println("Orig: " + epoch);
final long reconvertedJoda = jodaZone.convertLocalToUTC(epoch * 1000L, false) / 1000L;
System.out.println("Joda: " + reconvertedJoda);
final long reconvertedJava = ZonedDateTime.ofInstant(Instant.ofEpochSecond(epoch), ZoneOffset.UTC)
.withZoneSameLocal(javaZone).toEpochSecond();
System.out.println("Java: " + reconvertedJava);
System.out.println(reconvertedJoda == reconvertedJava);
}
}
@dmikurube
Copy link
Author

convertUTCToLocal:
Orig: 1586754665
Joda: 1586729465
Java: 1586729465
true
convertLocalToUTC:
Orig: 1586754665
Joda: 1586779865
Java: 1586779865
true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment