将 BigInt 时间戳转换为 java 中的日期?

Convert BigInt timestamp to Date in java?

我在网上搜索了一些有关将 BigInt 数据转换为日期的信息,同时我发现了很多相同的问题,但似乎没有一个有效。我的数据库中有 13 位数据 1435555326831,我认为这是 UNIXTIME,现在我想将其转换为 yyyy-MM-dd HH:mm:ss 形式。谢谢

你可以先把号码转换成long(如果你收到BigInteger,你可以调用BigInteger.longValue())。

那么你有两个选择。对于标准 java.util.Date,您可以使用:

long millis = 1435555326831L;
Date d = new Date(millis);

然后您可以使用 SimpleDateFormat 格式化日期以进行输出。

如果你可以使用Java 8的新时间API,你可以创建一个瞬间并将其转换为所需的时区(我下面的示例中你的计算机时区):

Instant instant = Instant.ofEpochMilli(millis);
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(fmt.format(instant.atZone(ZoneId.systemDefault())));

请注意,这些转换仅在 BigInteger 小于最大 long 大小时有效,一般情况下无效。这应该不是问题,因为 the maximum value of a long is 2^63 - 1,但是如果您的 BigInteger 是用户输入,您需要检查这一点。

你的数据是 Unix 时间戳,你可以简单地使用 new java.util.Date() 来转换它 这是它的例子 Java: Date from unix timestamp