如何重置我的程序于今日(JAVA)[关闭]

问题描述 投票:-2回答:2

我做了一个程序与Java(Eclipse的)。这项计划从今天得到预期的日期还有多远。我没有关闭该程序(昨天),该程序正在使用的,而不是今天的yesterday's date当我点击按钮。

有没有认识到它作为今天没有打开和关闭程序的方法吗?

private void dispose() {
    new SimpleCalendarOPD();
    calendar.setTime(today);
    ....

    JButton btnReset = new JButton("Reset");
    btnReset.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            txtDisplay.setText(null);
            txtDate.setText(null);
            dispose();

        }
    });
}
java date reset
2个回答
2
投票

它看起来像你没有适当的更新。我建议你使用java.time.LocalTime.now()每次点击的复位时间。

btnReset.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        txtDisplay.setText(null);
        txtDate.setText(null);
        // this is an example. Use appropriately in your code
        setTime(java.time.LocalTime.now());
    }});

即使你是正确获取时间(这是我们不知道的,因为你不告诉我们),这意味着你不能将它添加到您的显示器。我的另一个建议,是打印的时间到控制台,这样你就可以在你的代码查明错误。

private void dispose() {
    new SimpleCalendarOPD();
    calendar.setTime(today);
    //If time is correct, you know that you update the display wrong.
    System.out.println(today);
}

2
投票

你的问题是不明确的。也许你只是想当前日期。

Current date

如果你所要求的当前日期,来电LocalDate.now。通过您要查看日期的时区。请记住,对于任何给定时刻的日期世界各地的变化。这可能是明天在日本,同时仍然昨天在加拿大。

ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate today = LocalDate.now( z ) ;

当后来你想知道当前的日期,再打电话LocalDate.now再弄新鲜LocalDate对象。别看以前LocalDate,因为它是不可变的,不变的,并没有跟上最新的。

如果你想知道,如果当前时刻的当天或第二天,进行比较。

boolean isNewDay = previousLocalDate.isBefore( LocalDate.now( z ) ) ;

About java.time

java.time框架是建立在Java 8和更高版本。这些类取代的麻烦老legacy日期时间类,如java.util.DateCalendar,与SimpleDateFormat

该项目Joda-Time,现在在maintenance mode,建议迁移到java.time类。

要了解更多信息,请参见Oracle Tutorial。和搜索堆栈溢出了很多例子和解释。规格是JSR 310

您可以直接与数据库交换java.time对象。使用符合JDBC driver或更高版本的JDBC 4.2。无需串,没有必要java.sql.*类。

从哪里获取java.time类?

该项目ThreeTen-Extra与java.time其他类延伸。该项目是为将来可能增加的java.time试验场。您可以在这里找到一些有用的类,如IntervalYearWeekYearQuartermore

© www.soinside.com 2019 - 2024. All rights reserved.