gpt4 book ai didi

java - 时间戳增加了额外的天数

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

我得到当前时间(以毫秒为单位),例如

(System.currentTimeMillis() / 1000)

我使用它:

foodObj.setValue("expires",(System.currentTimeMillis() / 1000)+ONE_WEEK+"");

并使用静态整数添加一到两周

public static int TWO_WEEKS = 1209600000;
public static int ONE_WEEK = 604800000;
public static int ONE_DAY = 86400000;

当我稍后尝试将其转换为天数时,我认为它提前了 16 或 17 天(如果将一天的毫秒数算作一天,我不知道)

//keysValues.get("expires") contains the timestamp
Long exp= Long.parseLong(keysValues.get("expires"));
long days=TimeUnit.MILLISECONDS.toDays(exp)-16;//otherwise this is 23

为什么会出现时间不一致的情况?是长整型还是字符串转换?

最佳答案

通过System.currentTimeMillis()/1000,您得到的是,而不是毫秒。因此,为了使代码正常工作,您应该使用正确的常量:

public static final int ONE_DAY = 24 * 60 * 60;   // 86400, not 86.4M
public static final int ONE_WEEK = ONE_DAY * 7;
public static final int TWO_WEEKS = ONE_WEEK * 2;

// ...
long days = TimeUnit.SECONDS.toDays(exp)

或者不除以 1000。

顺便说一句,这不能处理可能的夏令时时钟更改,但我相信它在这里并不那么重要。

关于java - 时间戳增加了额外的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134877/

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