Simple Date Format Demo : Date Format « Data Type « Java






Simple Date Format Demo

Simple Date Format Demo
       
/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

import java.awt.Color;
import java.awt.Component;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class SimpleDateFormatDemo extends JPanel {

  static JFrame frame;
  JLabel result;
  String currentPattern;
  Date today;
  LocaleGroup availableLocales;

  public SimpleDateFormatDemo() {

    today = new Date();
    availableLocales = new LocaleGroup();

    String[] patternExamples = { "dd MMMMM yyyy", "dd.MM.yy", "MM/dd/yy",
        "yyyy.MM.dd G 'at' hh:mm:ss z", "EEE, MMM d, ''yy", "h:mm a",
        "H:mm:ss:SSS", "K:mm a,z", "yyyy.MMMMM.dd GGG hh:mm aaa" };

    currentPattern = patternExamples[0];

    // Set up the UI for selecting a pattern.
    JLabel patternLabel1 = new JLabel("Enter the pattern string or");
    JLabel patternLabel2 = new JLabel("select one from the list:");
    patternLabel1.setAlignmentX(Component.LEFT_ALIGNMENT);
    patternLabel2.setAlignmentX(Component.LEFT_ALIGNMENT);

    JComboBox patternList = new JComboBox(patternExamples);
    patternList.setSelectedIndex(0);
    patternList.setEditable(true);
    patternList.setAlignmentX(Component.LEFT_ALIGNMENT);
    PatternListener patternListener = new PatternListener();
    patternList.addActionListener(patternListener);

    // Set up the UI for selecting a locale.
    JLabel localeLabel = new JLabel("Select a Locale from the list:");
    localeLabel.setAlignmentX(Component.LEFT_ALIGNMENT);

    JComboBox localeList = new JComboBox(availableLocales.getStrings());
    localeList.setSelectedIndex(0);
    localeList.setAlignmentX(Component.LEFT_ALIGNMENT);
    LocaleListener localeListener = new LocaleListener();
    localeList.addActionListener(localeListener);

    // Create the UI for displaying result
    JLabel resultLabel = new JLabel("Current Date and Time", JLabel.LEFT);
    resultLabel.setAlignmentX(Component.LEFT_ALIGNMENT);
    result = new JLabel(" ");
    result.setForeground(Color.black);
    result.setAlignmentX(Component.LEFT_ALIGNMENT);
    result.setBorder(BorderFactory.createCompoundBorder(BorderFactory
        .createLineBorder(Color.black), BorderFactory.createEmptyBorder(5, 5,
        5, 5)));

    // Lay out everything
    JPanel patternPanel = new JPanel();
    patternPanel.setLayout(new BoxLayout(patternPanel, BoxLayout.Y_AXIS));
    patternPanel.add(patternLabel1);
    patternPanel.add(patternLabel2);
    patternPanel.add(patternList);

    JPanel localePanel = new JPanel();
    localePanel.setLayout(new BoxLayout(localePanel, BoxLayout.Y_AXIS));
    localePanel.add(localeLabel);
    localePanel.add(localeList);

    JPanel resultPanel = new JPanel();
    resultPanel.setLayout(new GridLayout(0, 1));
    resultPanel.add(resultLabel);
    resultPanel.add(result);

    setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
    patternPanel.setAlignmentX(Component.CENTER_ALIGNMENT);
    localePanel.setAlignmentX(Component.CENTER_ALIGNMENT);
    resultPanel.setAlignmentX(Component.CENTER_ALIGNMENT);

    add(patternPanel);
    add(Box.createVerticalStrut(10));
    add(localePanel);
    add(Box.createVerticalStrut(10));
    add(resultPanel);

    setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));

    reformat();

  } // constructor

  /** Listens to the pattern combo box. */
  class PatternListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      JComboBox cb = (JComboBox) e.getSource();
      String newSelection = (String) cb.getSelectedItem();
      currentPattern = newSelection;
      reformat();
    }
  }

  /** Listens to the locale combo box. */
  class LocaleListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      JComboBox cb = (JComboBox) e.getSource();
      int index = cb.getSelectedIndex();
      availableLocales.setCurrent(index);
      reformat();
    }
  }

  /** Manages information about locales for this application. */
  class LocaleGroup {

    Locale currentLocale;
    Locale[] supportedLocales = { Locale.US, Locale.GERMANY, Locale.FRANCE
    // Add other locales here, if desired.
    };

    public LocaleGroup() {
      currentLocale = supportedLocales[0];
    }

    public void setCurrent(int index) {
      currentLocale = supportedLocales[index];
    }

    public Locale getCurrent() {
      return currentLocale;
    }

    public String[] getStrings() {
      String[] localeNames = new String[supportedLocales.length];
      for (int k = 0; k < supportedLocales.length; k++) {
        localeNames[k] = supportedLocales[k].getDisplayName();
      }
      return localeNames;
    }
  }

  /** Formats and displays today's date. */
  public void reformat() {
    SimpleDateFormat formatter = new SimpleDateFormat(currentPattern,
        availableLocales.getCurrent());
    try {
      String dateString = formatter.format(today);
      result.setForeground(Color.black);
      result.setText(dateString);
    } catch (IllegalArgumentException iae) {
      result.setForeground(Color.red);
      result.setText("Error: " + iae.getMessage());
    }
  }

  public static void main(String s[]) {
    WindowListener l = new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        System.exit(0);
      }
    };

    frame = new JFrame("Date Formatting Demo");
    frame.addWindowListener(l);
    frame.getContentPane().add("Center", new SimpleDateFormatDemo());
    frame.pack();
    frame.setVisible(true);
  }
}

   
    
    
    
    
    
    
  








Related examples in the same category

1.Date Era changeDate Era change
2.Date Format
3.The Time and Date Format Suffixes
4.Display standard 12-hour time format
5.Display complete time and date information
6.Display just hour and minute
7.Display month by name and number
8.DateFormat.getDateInstance(DateFormat.SHORT)
9.Use relative indexes to simplify the creation of a custom time and date format.
10.Date Format with LocaleDate Format with Locale
11.Date Format SymbolsDate Format Symbols
12.Decimal Format with different SymbolsDecimal Format with different Symbols
13.Date format: "dd.MM.yy", "yyyy.MM.dd G 'at' hh:mm:ss z","EEE, MMM d, ''yy", "h:mm a", "H:mm", "H:mm:ss:SSS", "K:mm a,z","yyyy.MMMMM.dd GGG hh:mm aaa"Date format:
14.SimpleDateFormat.getAvailableLocalesSimpleDateFormat.getAvailableLocales
15.DateFormat.SHORT
16.This is same as MEDIUM: DateFormat.getDateInstance().format(new Date())
17.This is same as MEDIUM: DateFormat.getDateInstance(DateFormat.DEFAULT).format(new Date())
18.DateFormat.getTimeInstance(DateFormat.MEDIUM, Locale.CANADA).format(new Date())
19.DateFormat.getTimeInstance(DateFormat.LONG, Locale.CANADA).format(new Date())
20.DateFormat.getTimeInstance(DateFormat.FULL, Locale.CANADA).format(new Date())
21.DateFormat.getTimeInstance(DateFormat.DEFAULT, Locale.CANADA).format(new Date())
22.DateFormat.getDateInstance(DateFormat.LONG)
23.DateFormat.getTimeInstance(DateFormat.SHORT)
24.DateFormat.getTimeInstance(DateFormat.LONG)
25.Parse date string input with DateFormat.getTimeInstance(DateFormat.DEFAULT, Locale.CANADA)
26.Format date in Medium format
27.Format date in Long format
28.Format date in Full format
29.Format date in Default format
30.Formatting day of week using SimpleDateFormat
31.Formatting day of week in EEEE format like Sunday, Monday etc.
32.Formatting day in d format like 1,2 etc
33.Formatting day in dd format like 01, 02 etc.
34.Format hour in h (1-12 in AM/PM) format like 1, 2..12.
35.Format hour in hh (01-12 in AM/PM) format like 01, 02..12.
36.Format hour in H (0-23) format like 0, 1...23.
37.Format hour in HH (00-23) format like 00, 01..23.
38.Format hour in k (1-24) format like 1, 2..24.
39.Format hour in kk (01-24) format like 01, 02..24.
40.Format hour in K (0-11 in AM/PM) format like 0, 1..11.
41.Format hour in KK (00-11) format like 00, 01,..11.
42.Formatting minute in m format like 1,2 etc.
43.Format minutes in mm format like 01, 02 etc.
44.Format month in M format like 1,2 etc
45.Format Month in MM format like 01, 02 etc.
46.Format Month in MMM format like Jan, Feb etc.
47.Format Month in MMMM format like January, February etc.
48.Format seconds in s format like 1,2 etc.
49.Format seconds in ss format like 01, 02 etc.
50.Format date in dd/mm/yyyy format
51.Format date in mm-dd-yyyy hh:mm:ss format
52.Format year in yy format like 07, 08 etc
53.Format year in yyyy format like 2007, 2008 etc.
54.new SimpleDateFormat("hh")
55.new SimpleDateFormat("H") // The hour (0-23)
56.new SimpleDateFormat("m"): The minutes
57.new SimpleDateFormat("mm")
58.SimpleDateFormat("MM"): number based month value
59.new SimpleDateFormat("s"): The seconds
60.new SimpleDateFormat("ss")
61.new SimpleDateFormat("a"): The am/pm marker
62.new SimpleDateFormat("z"): The time zone
63.new SimpleDateFormat("zzzz")
64.new SimpleDateFormat("Z")
65.new SimpleDateFormat("hh:mm:ss a")
66.new SimpleDateFormat("HH.mm.ss")
67.new SimpleDateFormat("HH:mm:ss Z")
68.SimpleDateFormat("MM/dd/yy")
69.SimpleDateFormat("dd-MMM-yy")
70.SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z")
71.SimpleDateFormat("yyyy")
72.The month: SimpleDateFormat("M")
73.Three letter-month value: SimpleDateFormat("MMM")
74.Full length of month name: SimpleDateFormat("MMMM")
75.The day number: SimpleDateFormat("d")
76.Two digits day number: SimpleDateFormat("dd")
77.The day in week: SimpleDateFormat("E")
78.Full day name: SimpleDateFormat("EEEE")
79.Add AM PM to time using SimpleDateFormat
80.Simply format a date as "YYYYMMDD"
81.Java SimpleDateFormat Class Example("MM/dd/yyyy")
82.The format used is EEE, dd MMM yyyy HH:mm:ss Z in US locale.
83.Date Formatting and Localization
84.Get a List of Short Month Names
85.Get a List of Weekday Names
86.Get a List of Short Weekday Names
87.Change date formatting symbols
88.An alternate way to get week days symbols
89.ISO8601 formatter for date-time without time zone.The format used is yyyy-MM-dd'T'HH:mm:ss.
90.ISO8601 formatter for date-time with time zone. The format used is yyyy-MM-dd'T'HH:mm:ssZZ.
91.Parsing custom formatted date string into Date object using SimpleDateFormat
92.Parse with a custom format
93.Parsing the Time Using a Custom Format
94.Parse with a default format
95.Parse a date and time
96.Parse string date value input with SimpleDateFormat("E, dd MMM yyyy HH:mm:ss Z")
97.Parse string date value input with SimpleDateFormat("dd-MMM-yy")
98.Parse string date value with default format: DateFormat.getDateInstance(DateFormat.DEFAULT)
99.Find the current date format
100.Time format viewer
101.Date format viewer
102.Returns a String in the format Xhrs, Ymins, Z sec, for the time difference between two times
103.format Duration
104.Get Date Suffix
105.Date Format Cache
106.ISO8601 Date Format
107.Explode a date in 8 digit format into the three components.
108.Date To Iso Date Time
109.Iso Date Time To Date
110.Gets formatted time
111.Format Time To 2 Digits
112.Time formatting utility.
113.ISO 8601 BASIC date format
114.Format As MySQL Datetime
115.new SimpleDateFormat( "EEE MMM d HH:mm:ss z yyyy", Locale.UK )
116.Date parser for the ISO 8601 format.
117.Parse W3C Date format
118.Pack/Unpacks date stored in kdb format
119.Provides preset formatting for Dates. All dates are returned as GMT
120.Parse RSS date format to Date object.
121.Date format for face book
122.FastDateFormat is a fast and thread-safe version of java.text.SimpleDateFormat.
123.Date format and parse Util
124.XSD Date Time
125.Return a String value of Now() in a specify format
126.Format data to string with specified style.
127.extends Formatter