当前位置: 首页 > 知识库问答 >
问题:

为系统添加秒数。currentTimeMills()

曹智
2023-03-14

我试图用以下公式计算从现在起100天的时间:

import java.util.Date;
public class Main
{
    public static void main(String[] args) {
        System.out.println("Hello World");
        System.out.println(new Date(System.currentTimeMillis() + 8640000 * 1000));
    }
}

它给我返回了Jan 04 08:57:25 UTC 2021,这是不正确的。我该如何补救?

共有3个答案

公西俊才
2023-03-14

有时尝试一下

LocalDateTime.now().plusDays(100).toString()

SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy HH:mm:ss z"); // you could used any format
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE, 100); // Adding 100 days
String output = sdf.format(c.getTime());
System.out.println(output);
窦彦君
2023-03-14

java的日期时间API。util及其格式化API,SimpleDateFormat已经过时,并且容易出错。建议完全停止使用它们,并切换到现代日期时间API。

  • 出于任何原因,如果你必须坚持Java6或Java7,你可以使用三个备份端口,它将大部分java.time功能备份到Java6

使用现代API:

import java.time.LocalDate;
import java.time.ZoneId;

public class Main {
    public static void main(String[] args) {
        // Change the ZoneId as per your requirement e.g. ZoneId.of("Europe/London")
        LocalDate today = LocalDate.now(ZoneId.systemDefault());
        LocalDate after100Days = today.plusDays(100);
        System.out.println(after100Days);
    }
}

输出:

2021-04-13

从Trail:date-time了解现代日期时间API。

使用遗留API:

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class Main {
    public static void main(String[] args) {
        // Change the TimeZone as per your requirement e.g. TimeZone.getTimeZone("Europe/London")
        Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
        calendar.add(Calendar.DAY_OF_YEAR, 100);
        Date after100Days = calendar.getTime();
        System.out.println(after100Days);
    }
}

输出:

Tue Apr 13 19:40:11 BST 2021
陶成化
2023-03-14

使用以下内容:

System.out.println(new Date(System.currentTimeMillis() + (long)8640000 * 1000));

或者

System.out.println(new Date(System.currentTimeMillis() + 8640000L * 1000));

8640000 * 10008,640,000,000,超过整数。MAX_VALUE2,147,483,647。可以通过将其转换为long来解决此问题。

结果如下:

Tue Apr 13 15:26:10 EDT 2021
 类似资料:
  • 我下面有一个秒表代码,一开始运行的是ss:ms(秒.毫秒)格式,当它达到60秒以上时,我希望它运行的是mm:ss.ms(分钟:秒.毫秒)格式,这里是我的代码 我尝试了这段代码,但不起作用(不改变秒表的innerHTML)

  • 使用 我修改了以包含导入语句。因此,maven无法找到我试图使用并将其与项目链接的jar。 我向pom.xml文件添加了一个依赖项,如下所示:

  • 问题内容: 我无法为Java时间戳添加秒数。 我有这个,但是,它给了我相同的日期: 问题答案: 您拥有的代码适合我。作为简短但完整的程序: 输出: 请注意相差10分钟,即600秒。 当然,这样会损失亚毫秒级的精度,这可能不太理想-最初与我通常使用的时间戳背道而驰-但这 确实 增加了秒数… 另一种选择是直接使用:

  • 问题内容: java函数System。 currentTimeMillis ()显然返回自1970年1月1日以来的秒数。但是,根据Wikipedia.org/wiki/Leap_second的说法,自1972年以来已经有25个leap秒。这意味着自1970年1月1日以来的实际秒数比单纯的计算所建议的秒数多25。是否系统。 currentTimeMillis ()会天真的计算而忽略the秒吗? 问题

  • 作为日志记录工具,我使用Log4j2,这是通过使用系统属性(/VM参数)调用的,使用: 为了编译我的项目,我使用Maven并创建exe文件Launch4j(Plugin:com.akatast.Maven.plugins.Launch4j)。 我的pom中的插件定义。xml如下所示: 我现在的问题是: 如何设置log4j2集成的系统属性?! 如果试图用“opt”将其置于括号中(http://lau

  • 我有一个灰色的选项,我必须完成才能完成一个项目。上面说