Pegar data atual

Pessoal tem como ao clicar de um botão eu capturar a data em Java?

1 curtida

Date data = new Date(System.currentTimeMillis());

se quiser usar a Calendar , prq o metodos da date estão depreciated


Date d = new Date();

Calendar cal = new GregorianCalendar();

cal.setTime(d.getTime());

Valeu.

To tentando pegar a Data Atual no Java 5.0 com esse método:

[code]public Calendar getDataAtual(String formato){
Date date = new Date();

 Calendar cal = new GregorianCalendar();

 cal.setTime(date.getTime());
 return cal;
}[/code]

mas ta dando pau no setTime Diz q tenho que usar o setTimeZone();

Oq é q está errado?

Tenta assim:

[code]
import java.util.Date
import java.text.SimpleDateFormat

Date data = new Date();
SimpleDateFormat formatador = new SimpleDateFormat(“dd/MM/yyyy”);[/code]

e aqui vc pega a data:

formatador.format( data );
4 curtidas

[quote=Rafael Marques]Tenta assim:

[code]
import java.util.Date
import java.text.SimpleDateFormat

Date data = new Date();
SimpleDateFormat formatador = new SimpleDateFormat(“dd/MM/yyyy”);[/code]

e aqui vc pega a data:

formatador.format( data );

public Calendar getPegaDataAtual(){ Calendar calendar = new GregorianCalendar(); Date trialTime = new Date(); calendar.setTime(trialTime); return calendar; }

Assim ele tbm funfa, mas retorna um Calendar, mas eu preciso q retorne um date

[quote=Heero Yuy]To tentando pegar a Data Atual no Java 5.0 com esse método:

[code]public Calendar getDataAtual(String formato){
Date date = new Date();

 Calendar cal = new GregorianCalendar();

 cal.setTime(date.getTime());
 return cal;
}[/code]

mas ta dando pau no setTime Diz q tenho que usar o setTimeZone();

Oq é q está errado?
[/quote]

Resolvi pra retornar Date.

public Date getPegaDataAtual() { Calendar calendar = new GregorianCalendar(); Date date = new Date(); calendar.setTime(date); return calendar.getTime(); }

O tópico é antigo, mas me ajudou…
Fiz algumas alterações e resumi com outros tópicos que eu encontrei aqui. Finalmente consegui formartar a data para salvar em um banco de dados [color=green]MySQL[/color].

primeiramente [color=blue]IMPORTAR [/color]os seguintes itens abaixo:

import java.sql.Date; import java.text.SimpleDateFormat;
no desenvolvimento do código [color=blue]UTILIZAR[/color]:

Date data = new Date(System.currentTimeMillis()); SimpleDateFormat formatarDate = new SimpleDateFormat("yyyy-MM-dd"); System.out.print(formatarDate.format(data));

o sesultado fica como e [color=blue]EXEMPLO[/color] abaixo:

// 2008-12-31

[color=red]Obs:[/color] no formato (“yyyy-[color=red][size=18]MM[/size][/color]-dd”) a simbologia de Mês tem que ser em [color=darkred][size=18]Maiúsculo[/size][/color].

:wink:

Allan_BSO,
Da forma como você passou aí… ficou fácil pra eu manipular a data de qualquer forma…
Bacana!

Vlw… abraço!

Tópico muito útil que me ajudou bastante. Obrigado aos que compartilharam as informações. :smiley:

Todas estes exemplos estão corretos porém, no meu computador a data está para 23/06/2013 mas estas funções retornam 23/05/2013.

Se você preferir um código curto, tente:


//data
System.out.println(Calendar.getInstance().getTime());

//ano
System.out.println(Calendar.getInstance().get(Calendar.YEAR))

//mes
System.out.println(Calendar.getInstance().get(Calendar.MONTH));
2 curtidas

Baseado nas informações que os amigos colocaram acima, montei um componente de data com validações para datas inválidas.

package componentes;

import funcoes.F_Date;
import funcoes.F_String;
import funcoes.Mascarar;
import funcoes.MsgAlerta;
import java.awt.Dimension;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.text.MaskFormatter;

public class TxtDataPadrao extends TxtMaskPadrao{
public TxtDataPadrao(){
try {
super.setMascara(new MaskFormatter("##/##/####"));
this.addFocusListener(new FocusListener() {

            @Override
            public void focusGained(FocusEvent e) {
                selectAll();
            }

            @Override
            public void focusLost(FocusEvent e) {
                if (getDate() == null){
                    setValue(null);
                }
            }
        });

    } catch (ParseException ex) {
        MsgAlerta.alerta("Não foi possível carregar o componente de data!");
    }
}

public void setDate(Date data){
    if (data == null){
        this.setText("");
    }
    else{
        this.setText(F_Date.ToString(data));            
    }
}

public Date getDate(){
    Date data;
    
    if (F_String.Empty(Mascarar.RemoverMascara(this.getText()))){
        data = null;
    }
    else{
        Calendar calendario = Calendar.getInstance();
        calendario.setTime(new Date());
        String dia = F_String.Left(getText(), 2);
        String mes = F_String.Substr(getText(), 3, 2);
        String ano = F_String.Right(getText(), 4);
        
        /*
         * Monta a data conforme usuário digita valores
         */
        if(!F_String.Empty(dia)){
            dia = F_String.Lpad(dia.trim(), 2, "0");
        }
        else{
            dia = ((Integer) calendario.get(Calendar.DAY_OF_MONTH)).toString();
        }
        
        if(!F_String.Empty(mes)){
            mes = F_String.Lpad(mes.trim(), 2, "0");
        }
        else{
            mes = ((Integer) (calendario.get(Calendar.MONTH) + 1)).toString();
        }
        
        if(F_String.Empty(ano)){
            ano = ((Integer) calendario.get(Calendar.YEAR)).toString();
        }
        
        try {
            data = new SimpleDateFormat("dd/MM/yyyy").parse(dia + "/" + mes + "/" + ano);
        } catch (ParseException ex) {
            data = null;
        }            
    }
    
    this.setDate(data);
    
    return data;
} 

}

VEJA ESTE TÓPICO, e por ali, tem uns códigos e até o txt de uma versão do programa.

Oi amigo.

Lembrei de uma solução que eu vi no youtube e postei aqui outro dia.


Oi amigo encontrei esse vídeo no youtube que acho que atende
para colocar em qualquer lugar também, inclusive em jframes, jpanels, jlabels e etc.

http://www.youtube.com/watch?v=8PWzqJFhCaQ

Testei aqui e rodou direitinho.

Segue o código que digitei pegando no youtube:

Fiz no NetBeans para ir mais rápido.

import java.util.Calendar;
import java.util.GregorianCalendar;

public class Frame extends javax.swing.JFrame {

    /**
     * Creates new form Frame
     */
    public Frame() {
        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(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Frame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Frame.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 Frame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JLabel lData;
    private javax.swing.JLabel lHora;
    // End of variables declaration
}

Use

e vc terá a data atual.