我做了一个程序与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.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);
}
你的问题是不明确的。也许你只是想当前日期。
如果你所要求的当前日期,来电LocalDate.now
。通过您要查看日期的时区。请记住,对于任何给定时刻的日期世界各地的变化。这可能是明天在日本,同时仍然昨天在加拿大。
ZoneId z = ZoneId.of( "America/Montreal" ) ;
LocalDate today = LocalDate.now( z ) ;
当后来你想知道当前的日期,再打电话LocalDate.now
再弄新鲜LocalDate
对象。别看以前LocalDate
,因为它是不可变的,不变的,并没有跟上最新的。
如果你想知道,如果当前时刻的当天或第二天,进行比较。
boolean isNewDay = previousLocalDate.isBefore( LocalDate.now( z ) ) ;
该java.time框架是建立在Java 8和更高版本。这些类取代的麻烦老legacy日期时间类,如java.util.Date
,Calendar
,与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试验场。您可以在这里找到一些有用的类,如Interval
,YearWeek
,YearQuarter
和more。