代码之家  ›  专栏  ›  技术社区  ›  el323

将日期从epoch转换为date

  •  -2
  • el323  · 技术社区  · 6 年前

    我想把历代以来的天数转换成一个日期。假设我有以下内容 Timestamp in days: 17749 那么它应该被转换成 Monday Aug 06 2018 .

    我正在尝试使用以下代码:

    Date date = new SimpleDateFormat("D").parse(String.valueOf("17749"));
    System.out.println(date);
    

    但是我得到了 Sun Aug 05 00:00:00 PKT 2018 . 日期比实际日期早一天,如何将其转换为年-月-日?

    2 回复  |  直到 6 年前
        1
  •  3
  •   azro    6 年前

    java.time

    • ofEpochDay

      LocalDate d = LocalDate.ofEpochDay(17749);
      System.out.println(d);                       // 2018-08-06
      
    • EPOCH

      LocalDate.EPOCH.plusDays(17749);
      

    String DateTimeFormatter

        2
  •  2
  •   T.J. Crowder    6 年前

    D SimpleDateFormat pattern

    new Date(milliseconds)

    long days = 17749;
    Date d = new Date(days * 86400000L);
    

    java.util.Date java.time.LocalDate java.time plusDays EPOCH

    // ACTUALLY, THERE'S A BETTER WAY THAN THIS, SEE LINK AFTER CODE BLOCK
    long days = 17749;
    LocalDate d = LocalDate.EPOCH.plusDays(days);
    

    ofEpochDay azro's answer