miércoles, 5 de mayo de 2010

Obtener día, mes y año de una fecha en java con Date y Calendar

Hola:

Este en un ejemplo de una clase Java que puede servir para no usar lo siguiente:

       DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        Date date = null;


        try {
            date = formatter.parse(fecha);
        } catch (ParseException ex) {
            Logger.getLogger(ImpuestoEstadoDeMexico.class.getName()).log(Level.SEVERE, null, ex);
        }

       
        date.getDay();
        date.getMonth();
        date.getYear();

Estos métodos ya son obsoletos para las versiones mayores a la JDK 1.1 y por eso se recomienda el uso de Calendar.

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author mew
 */
public class Fecha {

    private String fecha;
    private int dia;
    private int mes;
    private int anio;

    public int getAnio() {
        return anio;
    }

    public void setAnio(int anio) {
        this.anio = anio;
    }

    public int getDia() {
        return dia;
    }

    public void setDia(int dia) {
        this.dia = dia;
    }

    public String getFecha() {
        return fecha;
    }

    public void setFecha(String fecha) {

        DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        Date date = null;


        try {
            date = formatter.parse(fecha);
        } catch (ParseException ex) {
            Logger.getLogger(ImpuestoEstadoDeMexico.class.getName()).log(Level.SEVERE, null, ex);
        }



        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);


        int anio_ = calendar.get(Calendar.YEAR);
        int mes_ = calendar.get(Calendar.MONTH)+1;
        int dia_ = calendar.get(Calendar.DAY_OF_MONTH);

        this.setAnio(anio_);
        this.setDia(dia_);
        this.setMes(mes_);

        this.fecha = fecha;
    }

    public int getMes() {
        return mes;
    }

    public void setMes(int mes) {
        this.mes = mes;
    }


    public static void main(String[] args) {
        Fecha fecha = new Fecha();
        fecha.setFecha("28/03/2010");
        System.out.println(fecha.getAnio()+" "+fecha.getMes()+" "+fecha.getDia());
    }


}
La salia sera algo como lo siguiente:

2010 3 28

Esta es la aportación de para el blog:

// Objeto grafico
JCalendarCombo calendarCombo = new JCalendarCombo();
calendarCombo.setBounds(210, 102, 172, 20);
add(calendarCombo);

// Formateando la fecha para que le guste a mySQL
Calendar calendario = calendarCombo.getCalendar();
String fecha = calendario.get(calendario.YEAR) + "-"
+ (calendario.get(calendario.MONTH) + 1) + "-"
+ calendario.get(calendario.DAY_OF_MONTH);


1 comentario:

Anónimo dijo...

Gracias por la info, te dejo mi código fuente :)

// Objeto grafico
JCalendarCombo calendarCombo = new JCalendarCombo();
calendarCombo.setBounds(210, 102, 172, 20);
add(calendarCombo);

// Formateando la fecha para que le guste a mySQL
Calendar calendario = calendarCombo.getCalendar();
String fecha = calendario.get(calendario.YEAR) + "-"
+ (calendario.get(calendario.MONTH) + 1) + "-"
+ calendario.get(calendario.DAY_OF_MONTH);