public class Output extends javax.swing.JFrame {
public Output() {
initComponents();
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("abc.jpg")));
setSize(400, 700);
setLocationRelativeTo(null );
setResizable(false);
setdate();
}
public void setdate(){
ActionListener obj = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
java.util.Date date = new Date();
Date.setText(date.getDate()+"-"+(1+date.getMonth())+
"-"+date.getYear()+" / "+date.getHours() + ":"
+ date.getMinutes()+ ":" +
date.getSeconds());
}
};
new javax.swing.Timer(1000,obj).start();
}
每当我运行此代码时,我都会把所有事情都搞定,但在设置年份时会显示18-8-116
,而它应显示18-8-16
或18-8-2016
。
答案 0 :(得分:1)
日期将日期年份存储为1900年,即116(1900 + 116 = 2016)。
自Java 1.1以来,大部分Date的方法都已被弃用。在Java 1.8之前,您最好使用Joda-Time中的Calendar或LocalDate。从Java 1.8开始,Date已被LocalDate,LocalTime,LocalDateTime及其timezoned对应物(即ZonedDateTime)取代。
所以你可能想在这里使用LocalDate,即
LocalDate date = LocalDate.of(2016, Month.AUGUST, 18);