未显示适当年份的GUI年份

时间:2016-08-07 07:07:22

标签: java swing date

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-1618-8-2016

1 个答案:

答案 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);