Formattedtextfield and DateTime in JAVA

Lacrymae picture Lacrymae · Dec 22, 2013 · Viewed 8.6k times · Source

How can i automatically write current system date as "YYYY-MM-DD HH:MM:SS" to formatted text field after program is launched in JAVA?

Actually i have two formatted text field. One of must be shown current system date - 5 Min second must be shown current system date after program is launched.

When i run this program Jpanel comes. Ihave these 2 formattedtextfield in this panel.

Left one: must be show current system date - 5min (2013-12-22 21:00:00.000)

Right one: must be show current system date (2013-12-22 21:05:00.000)

How can i code it for automaticly appear this values to fields?

P.S: sorry i dont attach image because i dont have 10 rep yet :(

Answer

Meno Hochschild picture Meno Hochschild · Dec 22, 2013

For setting the current system date you need:

JFormattedTextField ftf = ...;
ftf.setValue(new Date());

For setting the right format you need a DefaultFormatterFactory and the DateFormatter:

DateFormatter df = new DateFormatter(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
DefaultFormatterFactory factory = new DefaultFormatterFactory(); // other ctors possible
factory.setDefaultFormatter(df); // here simple default solution
ftf.setFormatterFactory(factory);

Note: You should read the javadoc. There are several variations for edit and display mode. So in your scenario you need two fields (and therefore two dates):

JFormattedTextField ftfLeft = ...; // create and set the format
JFormattedTextField ftfRight = ...; // create and set the format
Date now = new Date();
Date nowMinusFiveSeconds = new Date(now.getTime() - 5 *1000);
ftfLeft.setValue(nowMinusFiveSeconds);
ftfRight.setValue(now);