I am trying to rewrite below two lines of code from C# into Java.
long ticks1970Onwards = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).Ticks;
long newTs = (DateTime.UtcNow.Ticks - ticks1970Onwards)/10000;
I tried multiple ways , but I don't get the correct solution.
ZonedDateTime dt1 = LocalDateTime.now().atZone(ZoneId.of("UTC"));
ZonedDateTime dt2 = LocalDateTime.of(1901, 1, 1, 0, 0).atZone(ZoneId.of("UTC"));
Duration duration2 = Duration.between(dt2, dt1);
System.out.printf("Duration = %s milliseconds.%n", duration2.getSeconds()*1000);
解决方案
Use it to convert Instant.now() to the number of milliseconds from the epoch of 1970-01-01T00:00:00Z where Z stands for Zulu time and represents UTC.
import java.time.Instant;
public class Main {