How do I get a string in Java in ISO8601 given the number of seconds
since the epoch? I'm having trouble finding it anywhere.
I want the format to look something like
this:
2000-06-31T19:22:15Z
Using just
Date d = new Date(# of milliseconds from my # of seconds) gives me a date in 1970 when I
should be getting something in 2000.
Answer
The main problem you are probably having, is
that June 2000 only had 30 days. That being said instead of using
Date
, you could use a LocalDateTime
with href="https://docs.oracle.com/javase/8/docs/api/java/time/LocalDateTime.html#ofEpochSecond-long-int-java.time.ZoneOffset-"
rel="nofollow noreferrer">LocalDateTime.ofEpochSecond(long, int,
ZoneOffset)
like
long epochSecond =
962392935L;
int nanoOfSecond = 0;
ZoneOffset offset =
ZoneOffset.UTC;
LocalDateTime ldt = LocalDateTime.ofEpochSecond(epochSecond,
nanoOfSecond,
offset);
System.out.println(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'Z'").format(ldt));
Which
should be all you need to see
2000-06-30T19:22:15Z
which
is like your requested output.
No comments:
Post a Comment