Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GUI中的年份未显示正确的年份_Java_Swing_Date - Fatal编程技术网

Java GUI中的年份未显示正确的年份

Java GUI中的年份未显示正确的年份,java,swing,date,Java,Swing,Date,每当我运行此代码时,我都会得到所有的结果,但在设置年份时,它会显示18-8-116,而它应该显示18-8-16或18-8-2016日期将日期的年份存储为1900年起的年份,因此是116(1900+116=2016) 自Java1.1以来,Date的大多数方法都被弃用。在Java1.8之前,最好使用Joda Time的Calendar或LocalDate。自Java 1.8以来,日期已被LocalDate、LocalTime、LocalDateTime及其时区对应项(即ZonedDateTime)

每当我运行此代码时,我都会得到所有的结果,但在设置年份时,它会显示
18-8-116
,而它应该显示
18-8-16
18-8-2016

日期将日期的年份存储为1900年起的年份,因此是116(1900+116=2016)

自Java1.1以来,Date的大多数方法都被弃用。在Java1.8之前,最好使用Joda Time的Calendar或LocalDate。自Java 1.8以来,日期已被LocalDate、LocalTime、LocalDateTime及其时区对应项(即ZonedDateTime)取代

因此,您可能希望在这里使用LocalDate,即

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();       
}

只有某些“中的方法不推荐使用”。哦,是的,这是真的。类Date不是不推荐的,但它的大多数方法都是这样。我已经纠正了这一点。虽然没有完全弃用,但类文档中提到的类取代了类日期。您使用的是一个麻烦的旧类,现在已被取代。而是打电话。别指望这门课会让人胆战心惊;2016年是应该的2016年。
LocalDate date = LocalDate.of(2016, Month.AUGUST, 18);