Pessoal, estou estudando Java. Estava olhando configurações de data e hora. Até o momento entendi que é mais ou menos assim:
package testesdecoisas;
import java.util.Date;
public class TestesDeCoisas {
public static void main(String[] args) {
//Exibição de data e hora
Date teste = new Date();
System.out.println("A data é " +teste);
}
}
A minha dúvida é: Quando eu executo esse código a resposta seria “A data é Wed Aug 23 18:40:29 BRT 2017”
Como faço para formatar isso? Colocando por exemplo 23/08/2017 ou até mesmo conseguir separar isso em algo como “Hoje é 23/08/27 e são 18:40” ?
Então, aproveitando o tópico. Agradeço ao amigo @rodevops pela indicação. Não sabia por onde começar e agora consegui. A pergunta agora é: Como faço para passar isso pra uma Swing? O action do botão fica assim:
private void btnDataActionPerformed(java.awt.event.ActionEvent evt) {
Date relogio = new Date();
lblData.setText(relogio.toString());
}
Mas se eu faço isso private void btnDataActionPerformed(java.awt.event.ActionEvent evt) {
Date relogio = new Date();
SimpleDateFormat horario = new SimpleDateFormat (“dd MM yyyy”);
lblData.setText(horario.format(relogio.toString()));
}
Quando eu clico no botão pra mostrar a data, ele dá erro.
Exception in thread “AWT-EventQueue-0” java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:310)
at java.text.Format.format(Format.java:157)
at relogiodatahora.DataHora.btnDataActionPerformed(DataHora.java:83)
at relogiodatahora.DataHora.access$000(DataHora.java:7)
at relogiodatahora.DataHora$1.actionPerformed(DataHora.java:35)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Alguém poderia me explicar como fazer isso dar certo?
Opa. Deu certo aqui! Muito obrigado mano. Só uma ultima pergunta pra fechar: Quando eu seto o “SimpleDateFormat horario = new SimpleDateFormat(“HH:mm:ss”)” ele me dá a hora estática. Ex: 20:44:58
Sabe se tem alguma forma de fazer esse contador continuar andando sem precisar ter que clicar no botão novamente para atualizar os segundos?
package br.paulo;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class teste extends javax.swing.JFrame {
/**
* Creates new form Frame
*/
public teste() {
initComponents();
new Thread(){
@Override
public void run(){
for(;;){
dataEHora();
try{
sleep(1000);
}catch(InterruptedException ie){
ie.printStackTrace();
}
}
}
}.start();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
lData = new javax.swing.JLabel();
lHora = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
lData.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
lData.setForeground(new java.awt.Color(51, 51, 255));
lData.setText("jLabel1");
lHora.setFont(new java.awt.Font("Tahoma", 0, 24)); // NOI18N
lHora.setForeground(new java.awt.Color(51, 51, 255));
lHora.setText("jLabel2");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(lData)
.addGap(18, 18, 18)
.addComponent(lHora)
.addContainerGap(220, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lData)
.addComponent(lHora))
.addContainerGap(260, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public void dataEHora(){
Calendar cal = new GregorianCalendar();
int dia = cal.get(Calendar.DAY_OF_MONTH);
int mes = cal.get(Calendar.MONTH);
int ano = cal.get(Calendar.YEAR);
int hora = cal.get(Calendar.HOUR);
int minuto = cal.get(Calendar.MINUTE);
int segundo = cal.get(Calendar.SECOND);
lData.setText("Data:"+dia+"/"+(mes+1)+"/"+ano);
lHora.setText("Hora:"+hora+":"+minuto+":"+segundo);
}
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(teste.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(teste.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(teste.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(teste.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new teste().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel lData;
private javax.swing.JLabel lHora;
// End of variables declaration
}