gpt4 book ai didi

java - 在Java中使用不同的日期作为UNIX纪元时间?

转载 作者:行者123 更新时间:2023-12-01 18:30:12 25 4
gpt4 key购买 nike

我知道标准 UNIX 纪元时间是 1/1/70,我可以使用此变量将当前时间转换为 UNIX 时间:

int 时间 = (int) ((System.currentTimeMillis())/1000);

(注意:我知道它通常存储为 64 位长,但我需要它是 32 位,因此强制转换为 int)。

我的问题是 - Java 中是否有任何内置方法可以传递不同的日期作为“纪元日期”。我想要获取的是自特定日期以来的秒数时间戳。 IE。我想将 2015 年 1 月 1 日定义为我的纪元。然后每个 future 日期将是自 2015 年 1 月 1 日以来的秒数。

如果没有 Java 库提供该功能,您有什么想法可以做到这一点吗?谢谢,蒂姆

最佳答案

不需要任何库,你只需要使用数学即可。

static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
static final long EPOCH = new Date(2015 - 1900, Calendar.JANUARY, 1).getTime(); // 2015/1/1 in GMT

public static int secondSinceEpoch() {
return (int) ((System.currentTimeMillis() - EPOCH) / 1000);
}

public static String epochToString(int secsSince2015) {
return SDF.format(new Date(secsSince2015 * 1000 + EPOCH));
}

public static void main(String... ignored) {
System.out.println(new Date(EPOCH));
System.out.println("Epoch is " + epochToString(0));
System.out.println("Today is " + secondSinceEpoch() + " secs");
System.out.println("Today is " + secondSinceEpoch() / 86400 + " days");
}

打印

Thu Jan 01 00:00:00 GMT 2015
Epoch is 2015/01/01 00:00:00
Today is -15732850 secs
Today is -182 days

关于java - 在Java中使用不同的日期作为UNIX纪元时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24539885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com