如何仅从unix时间戳获取月份和年份

bil*_*ley 0 java

我有许多格式为“1231469665”的时间戳,是数据集的一部分,我正在执行的任务需要我找出数据集中每个月发生的事件实例数。

{
  int timestamp = 1231469665;
  java.util.Date time = new java.util.Date((long)timestamp*1000);
}
Run Code Online (Sandbox Code Playgroud)

上面给出了'Fri Jan 09 02:54:25 UTC 2009',我只需要知道其中的月份和年份。

你能帮我吗?

Ell*_*sch 5

Java time api 使这变得容易。使用Instant.ofEpochSecond(long)获得Instant,然后LocalDateTime.ofInstant()获得LocalDateTime。最后,这会给你年和月这样的

Instant instant = Instant.ofEpochSecond(timestamp);
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.of("UTC"));
System.out.printf("year = %d, month = %s%n", ldt.getYear(), ldt.getMonth());
Run Code Online (Sandbox Code Playgroud)

我得到(对于 1231469665)

year = 2009, month = JANUARY
Run Code Online (Sandbox Code Playgroud)