目次
日時(ZonedDateTime)を Unix タイムスタンプに変換する
package com.example;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Example {
public static void main(String[] args) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ssZ");
ZonedDateTime zonedDateTime = ZonedDateTime.of(2020, 1, 1, 0, 0, 0, 0, ZoneId.systemDefault());
long epochSecond = zonedDateTime.toEpochSecond();
System.out.println(epochSecond);
}
}
実行結果:
1577804400
日時(ZonedDateTime)を Unix タイムスタンプ(ミリ秒)に変換する
ミリ秒に変換する場合は一度 Instant
に変換します。
package com.example;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Example {
public static void main(String[] args) {
ZonedDateTime zonedDateTime = ZonedDateTime.of(2020, 1, 1, 0, 0, 0, 0, ZoneId.systemDefault());
long epochMilli = zonedDateTime.toInstant().toEpochMilli();
System.out.println(epochMilli);
}
}
実行結果:
1577804400000
日時(LocalDateTime)を Unix タイムスタンプに変換する
LocalDateTime
は ZonedDateTime
に変換してから Unix タイムスタンプに変換します。
package com.example;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class Example {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.of(2020, 1, 1, 0, 0, 0, 0);
long epochSecond = localDateTime.atZone(ZoneId.systemDefault()).toEpochSecond();
System.out.println(epochSecond);
}
}
実行結果:
1577804400
Unix タイムスタンプを日時(ZonedDateTime)に変換する
Unix タイムスタンプを日時に変換するには一度 Instant
を経由します。
package com.example;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Example {
public static void main(String[] args) {
Instant instant = Instant.ofEpochSecond(1577804400);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(zonedDateTime);
}
}
実行結果:
2020-01-01T00:00+09:00[Asia/Tokyo]
Unix タイムスタンプ(ミリ秒)を日時(ZonedDateTime) に変換する
package com.example;
import java.time.Instant;
import java.time.ZoneId;
import java.time.ZonedDateTime;
public class Example {
public static void main(String[] args) {
Instant instant = Instant.ofEpochMilli(1577804400000L);
ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(zonedDateTime);
}
}
実行結果:
2020-01-01T00:00+09:00[Asia/Tokyo]
Unix タイムスタンプを日時(LocalDateTime) に変換する
package com.example;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
public class Example {
public static void main(String[] args) {
Instant instant = Instant.ofEpochSecond(1577804400);
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println(localDateTime);
}
}
実行結果:
2020-01-01T00:00