java.util.Calendar
The java.util.Calendar
class is used to represent the date and time. The year, month, day, hour, minute, second, and milliseconds can all be set or obtained from a Calendar object. The default Calendar object has the current time in it. There are also methods for making data calculations.
Other related classes: Date, and DateFormat, ...
To get the current time
The default Calendar constructor produces an object whose fields are set to the current time for the default timezone and locale.
Calendar now = Calendar.getInstance();
Getting the value of the fields
The following field names can be used as an argument to the Calendar.get(. . .)
method. In all of these examples, t
is a Calendar object.
Access Method
Meaningt.get(Calendar.YEAR)
t.get(Calendar.MONTH)
t.get(Calendar.DAY_OF_MONTH)
t.get(Calendar.DAY_OF_WEEK)
t.get(Calendar.HOUR)
t.get(Calendar.AM_PM)
t.get(Calendar.HOUR_OF_DAY)
t.get(Calendar.MINUTE)
t.get(Calendar.SECOND)
t.get(Calendar.MILLISECOND)
Example :
// File : animation/textclock/TextClock1.java// Purpose: Show use of Timer, Calendar to implement a clock.// Enhancements: Center text, 12 hour with AM/PM, ....// Author : Fred Swartz, 1999 ... 2007-03-02, Placed in public domainimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.Calendar; TextClock1class TextClock1 extends JFrame { //============================================================== fields private JTextField _timeField; // set by timer listener //========================================================== constructor public TextClock1() { //... Set characteristics of text field that shows the time. _timeField = new JTextField(5); _timeField.setEditable(false); _timeField.setFont(new Font("sansserif", Font.PLAIN, 48)); JPanel content = new JPanel(); content.setLayout(new FlowLayout()); content.add(_timeField); this.setContentPane(content); this.setTitle("Text Clock 1"); this.pack(); this.setLocationRelativeTo(null); this.setResizable(false); //... Create timer which calls action listener every second.. // Use full package qualification for javax.swing.Timer // to avoid potential conflicts with java.util.Timer. javax.swing.Timer t = new javax.swing.Timer(1000, new ClockListener()); t.start(); } /// inner class ClockListener class ClockListener implements ActionListener { public void actionPerformed(ActionEvent e) { //... Whenever this is called, get the current time and // display it in the textfield. Calendar now = Calendar.getInstance(); int h = now.get(Calendar.HOUR_OF_DAY); int m = now.get(Calendar.MINUTE); int s = now.get(Calendar.SECOND); _timeField.setText("" + h + ":" + m + ":" + s); //... The following is an easier way to format the time, // but requires knowing how to use the format method. //_timeField.setText(String.format("%1$tH:%1$tM:%1$tS", now)); } } //================================================================= main public static void main(String[] args) { JFrame clock = new TextClock1(); clock.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); clock.setVisible(true); }}