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

算出Linux时代属于Java的哪一天

  •  0
  • Saffik  · 技术社区  · 5 年前

    我正试图弄清楚如何计算出给定的linux时代ts属于哪一天。

    为了帮助解释更多内容,我给出了以下示例:

    我试过用jodatime来解决这个问题,但是没有一个有效的解决方案。

    // some code here that I need.... <---??
    
    // The time set here below is (Tue 2019-09-10 14:05:00 UTC)
    final long timestamp = 1568124300000L
    
    
    if (timestamp = xxxxx) {
        System.out.println("The day it belongs to is: " + dayEpoch);
    }
    

    理想情况下,我希望打印的输出是:

    它所属的日期是:2019-09-10

    请给出实现此目标的代码示例:)

    1 回复  |  直到 5 年前
        1
  •  2
  •   deHaar    5 年前

    你可以使用 java.time 为了满足您的要求:

    final long timestamp = 1568124300000L;
    
    // create an Instant from the timestamp
    Instant instant = Instant.ofEpochMilli(timestamp);
    // create a datetime object from the Instant
    LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.of("UTC"));
    // print it in your desired formatting
    System.out.println("The day it belongs to is: "
                        + localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")));
    

    请注意,您可以有不同的 ZoneId 在你的例子中,你已经清楚地写下它是UTC,所以我以那个为例。有 ZoneId.systemDefault(); 要获取本地时区,其输出是相同的( 日期 )在我的系统上。
    使用这个,你必须使用 爪哇8 ThreeTen-Backport 艾斯