2016-08-07 18 views
-1
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在GUI沒有顯示正確的一年

+0

您使用的是舊的麻煩類現在['java.time.LocalDate']取代(http://docs.oracle.com /javase/8/docs/api/java/time/LocalDate.html)。而是調用['LocalDate.of(int year,int month,int dayOfMonth)'](http://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#of-int- INT-內部 - )。沒有時髦指望這個班; 2016年應該是'2016'。 –

回答

1

日期存儲的日期從1900年開始,因此是116(1900 + 116 = 2016)。

自Java 1.1以來,大多數Date方法已被棄用。在Java 1.8之前,您最好使用Joda-Time的Calendar或LocalDate。自Java 1.8以來,Date已被LocalDate,LocalTime,LocalDateTime和它們的時間分割對象取代,即ZonedDateTime。

所以,你可能想在這裏使用LOCALDATE的,即

LocalDate date = LocalDate.of(2016, Month.AUGUST, 18); 
+1

['Date'](https://docs.oracle.com/javase/8/docs/api/java/util/Date.html)中只有某些方法已被棄用。「 – trashgod

+1

哎呀,是的,這是真的。 Date類不被棄用,但它的大部分方法。我糾正了這一點。 – deepblue

+0

儘管尚未完全不推薦使用,但類Date被前面提到的[java.time](http://docs.oracle.com/javase/8/docs/api/java/time/package-summary.html)類取代在類文檔中。 –