miércoles, 13 de abril de 2011

Manejo de Fecha y Hora en J2ME

Fecha y Hora con J2ME

Las clases de manejo de fecha y hora en J2ME han sido reducidas para la versión móvil de estas. Básicamente este es el procedimiento:

// aquí 'd' contiene la fecha y hora actual, obtenida por la llamada a "new Date()"
Date d = new Date();

// se instancia un calendario, usando Calendar.getInstance(...) , la llamada a TimeZone es opcional.
Calendar cal = Calendar.getInstance(
  TimeZone.getDefault());

// se asocia al calendario con la fecha y hora actual
cal.setTime(d);

// listo, ya se puede usar el objeto de clase Calendar para obtener fecha y hora.
// en este ejemplo, la variable "hoyEs" contendrá: "2011/04/15" 
String hoyEs = cal.get(Calendar.YEAR)+"/"+(1+cal.get(Calendar.MONTH))+"/"+(cal.get(Calendar.DAY_OF_MONTH));


Importante:Calendar.MONTH y otros son indexadas a cero. es decir:  Enero es 0. Febrero es 1, etc.





DateUtil.java

Puede copiar esta clase y usarla manteniendo los créditos en ella.

/*inicio de archivo DateUtil.java */

package util;


import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;


/**Clase -helper- para manejo de fechas.
 *
 * @author christian salazar, christiansalazarh@gmail.com
 */
public class DateUtil {




    /* entrega la fecha actual:  aaaa/mm/dd, ejemplo: 2011/04/14 */

    public static String getCurrentDate()
    {
        Date d = new Date();
        Calendar cal = Calendar.getInstance(TimeZone.getDefault());
        cal.setTime(d);


        int imes = (cal.get(Calendar.MONTH)+1);
        String mes = imes+"";
        if(imes < 10) mes="0"+imes;


        int idia = cal.get(Calendar.DAY_OF_MONTH);
        String dia = idia+"";
        if(idia < 10)
            dia="0"+idia;
        
        return cal.get(Calendar.YEAR)+"/"+mes
                +"/"+dia;
    }


    public static int getYear()
    {
        Date d = new Date();
        Calendar cal = Calendar.getInstance(TimeZone.getDefault());
        cal.setTime(d);
        return cal.get(Calendar.YEAR);
    }
    public static int getMonth()
    {
        Date d = new Date();
        Calendar cal = Calendar.getInstance(TimeZone.getDefault());
        cal.setTime(d);
        return 1+cal.get(Calendar.MONTH);
    }
    public static int getDay()
    {
        Date d = new Date();
        Calendar cal = Calendar.getInstance(TimeZone.getDefault());
        cal.setTime(d);
        return cal.get(Calendar.DAY_OF_MONTH);
    }
    public static int getHour()
    {
        Date d = new Date();
        Calendar cal = Calendar.getInstance(TimeZone.getDefault());
        cal.setTime(d);
        return cal.get(Calendar.HOUR);
    }
    public static int getMinute()
    {
        Date d = new Date();
        Calendar cal = Calendar.getInstance(TimeZone.getDefault());
        cal.setTime(d);
        return cal.get(Calendar.MINUTE);
    }
    public static int getSecond()
    {
        Date d = new Date();
        Calendar cal = Calendar.getInstance(TimeZone.getDefault());
        cal.setTime(d);
        return cal.get(Calendar.SECOND);
    }
} /*fin de archivo DateUtil.java */



KVMCalendar.java


A continuación otro ejemplo tomado de:
http://www.java2s.com/Code/Java/J2ME/KVMCalendar.htm

import java.util.Calendar;
import java.util.Date;

public class KVMCalendar {

  public static void main(String[] args) {
    Calendar cal = Calendar.getInstance();
    Date date = new Date();
    cal.setTime(date);
    int month = cal.get(Calendar.MONTH);
    int day = cal.get(Calendar.DAY_OF_MONTH);
    System.out.println("Day is " + day + ", month is " + month);

    final long MILLIS_PER_DAY = 24 60 60 1000L;
    long offset = date.getTime();
    offset += 20 * MILLIS_PER_DAY;
    date.setTime(offset);
    cal.setTime(date);

    month = cal.get(Calendar.MONTH);
    day = cal.get(Calendar.DAY_OF_MONTH);
    System.out.println("In 20 days time, day will " + day + ", month will be " + month);
    System.out.println(cal);
  }
}

2 comentarios:

  1. Hola Crhistian. Tiene un ejemplo donde se pueda ver el uso del objeto DateField para almacenar una fecha seleccionada de allí en una BD de MySQL? POr favor que me pueda faciltar (ojalá con printer screen) al correo: oscar.marin.salas@gmail.com o publicarlo en su Blog.
    Muchas gracias!

    ResponderEliminar
  2. Hola Christian, muchas gracias por tu ayuda. Saludos

    ResponderEliminar