Foro de elhacker.net

Programación => Java => Mensaje iniciado por: josco en 14 Agosto 2010, 21:01 pm



Título: obtener fecha en j2me
Publicado por: josco en 14 Agosto 2010, 21:01 pm
hola que tal alguien sabe como se puede obtener la fecha en j2me.
estoy haciendo una aplicacion la cual guarda archivos en txt entonces a la hora de pedir el nombre del archivo en un textfield quiero que por default aparezca la fecha pero no se como obtener la fecha. :huh: :huh:


Título: Re: obtener fecha en j2me
Publicado por: Debci en 14 Agosto 2010, 21:06 pm
Has probado obteniendola igual que en Java normal?

Código
  1. java.util.Date fecha = new Date();
  2. System.out.println (fecha);

Saludos


Título: Re: obtener fecha en j2me
Publicado por: josco en 14 Agosto 2010, 21:11 pm
si lo acavo de provar jeje, si funciona, como le are para que me la muestre en el siguiente formato: dd/mm/aaaa


Título: Re: obtener fecha en j2me
Publicado por: Debci en 14 Agosto 2010, 21:40 pm
si lo acavo de provar jeje, si funciona, como le are para que me la muestre en el siguiente formato: dd/mm/aaaa
Mira asi de sencillo:
Código
  1. java.util.Date fecha = new Date();
  2. System.out.print(fecha.getDay() + "/" + fecha.getMonth() + "/" + fecha.getYear());
  3.  
De la clase date tienes metodos concretos para obtener todo tipo de datos sobre la fecha:
Código
  1.  
  2. int getDay()
  3.          Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.DAY_OF_WEEK).
  4. int getHours()
  5.          Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY).
  6. int getMinutes()
  7.          Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.MINUTE).
  8. int getMonth()
  9.          Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.MONTH).
  10. int getSeconds()
  11.          Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.SECOND).
  12. long getTime()
  13.          Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT represented by this Date object.
  14. int getTimezoneOffset()
  15.          Deprecated. As of JDK version 1.1, replaced by -(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000).
  16. int getYear()
  17.          Deprecated. As of JDK version 1.1, replaced by Calendar.get(Calendar.YEAR) - 1900.


Cito del api de java:
java.util.Date en el API de Java (http://download.oracle.com/javase/1.4.2/docs/api/java/util/Date.html)

Espero que te sirva.

Saludos


Título: Re: obtener fecha en j2me
Publicado por: josco en 14 Agosto 2010, 22:10 pm
mm no me sale eso de .getday();

hasta el momento tengo esto:

Código:
import com.nokia.mid.sound.Sound;
import java.util.Date;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.DateField;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.TextField;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Noe
 */
public class NombreDelTxt extends Form implements CommandListener {
  private TextField txtNombre;
  private Command Guardar;
  private CronoMusic midlet;
  public String[] array = new String[100];
  private int Vueltas;
  private DateField cFecha;


  public NombreDelTxt(CronoMusic m,String Array[],int vueltas)
  {
     super("Resultados");
     midlet = m;
     array = Array;
     Vueltas = vueltas;
     //obtener fecha beta
     cFecha = new DateField( "",DateField.DATE);
     Date fechaactual = new Date(); // Creo un objeto Date con fecha actual
     cFecha.setDate( fechaactual );
     cFecha.setLabel(cFecha.getDate().toString());
     //fin de obtener fecha
     txtNombre = new TextField("Nombre",cFecha.getLabel(),30,TextField.ANY);     
     Guardar= new Command("Guardar",Command.OK,1);
     this.append(txtNombre);
     this.addCommand(Guardar);
     this.setCommandListener(this);
  }

    public void commandAction(Command c, Displayable dsplbl) {
        if(c==Guardar)
        {
          String nombre = txtNombre.getString();
            System.out.println("nombre = "+nombre);
            //midlet.setBrowser(array,nombre,false,Vueltas);
        }

    }

}

ya muestron en el textfeild la fecha pero con el formato: sat aug 14 00:00:00 utc 2010.

estoy usando netbeans y abjao de
Código:
Date fechaactual = new Date(); // Creo un objeto Date con fecha actual
intento poner:
Código:
Date dia = fechaactual.getDay
para guardar el dia pero me marca error de que no puede encontrar el simbolo getDay();


Título: Re: obtener fecha en j2me
Publicado por: Debci en 14 Agosto 2010, 22:14 pm
Mmm es posible que este deprecated, por eso he añadido las anotaciones del API, fijate que usa calendar para obtenerlo todo :)

Saludos


Título: Re: obtener fecha en j2me
Publicado por: Leyer en 14 Agosto 2010, 22:20 pm
que tal asi?

Código
  1. java.util.Date date = new java.util.Date();
  2. java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("dd/MM/yyyy");
  3. String StringDate=simpleDateFormat.format(date);
  4. System.out.println(StringDate);


Título: Re: obtener fecha en j2me
Publicado por: Debci en 14 Agosto 2010, 22:27 pm
que tal asi?

Código
  1. java.util.Date date = new java.util.Date();
  2. java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("dd/MM/yyyy");
  3. String StringDate=simpleDateFormat.format(date);
  4. System.out.println(StringDate);
Oido cocina!
Siempre tiendo a complicarme la vida xD


Título: Re: obtener fecha en j2me
Publicado por: josco en 14 Agosto 2010, 22:29 pm
lo intente asi
Código:
java.text.SimpleDateFormat
pero marca error en .text como que no lo soparta en j2me


Título: Re: obtener fecha en j2me
Publicado por: Leyer en 14 Agosto 2010, 23:03 pm
wtf mi eclipse no sirve :xD

Bueno en ese caso no se me ocurre nada, en un datefield no lo veo posible que se coloque como quieres o no se, una de las 2 :xD
Muestralo en un textfiel XD jaja textbox o StringItem


Título: Re: obtener fecha en j2me
Publicado por: josco en 14 Agosto 2010, 23:09 pm
si lo muestro en un textfield y me sale: sat aug 14 00:00:00 utc 2010
y si lo muestro en un datafield me sale sat aug 14 2010.

bueno asi lo dejare   :P :P

gracias por ayudar, saludos


Título: Re: obtener fecha en j2me
Publicado por: Debci en 15 Agosto 2010, 00:00 am
si lo muestro en un textfield y me sale: sat aug 14 00:00:00 utc 2010
y si lo muestro en un datafield me sale sat aug 14 2010.

bueno asi lo dejare   :P :P

gracias por ayudar, saludos
Prueba a componer una string usando los metodos que te hemos dado y luego meterla al textbox.

Es lo mas sensato no? O hay algo mas rapido? xDDD


Título: Re: obtener fecha en j2me
Publicado por: josco en 15 Agosto 2010, 04:19 am
bueno al fin me decidi por componer un string como dices Debci  lo hice de la siguiente manera y me muestra: sat aug 14 2010 en un textfield

Código:
 //obtener fecha beta
     cFecha = new DateField( "",DateField.DATE);
     Date fechaactual = new Date(); // Creo un objeto Date con fecha actual
     cFecha.setDate( fechaactual );
     cFecha.setLabel(cFecha.getDate().toString());
     String nombre = cFecha.getLabel();
     tamFecha = nombre.length();
     for(int i=0;i<=tamFecha;i++)//for para sacar el dia y el mes
     {
       String subNombre = nombre.substring(0,i);
       if(subNombre.endsWith(":"))
       {
         diaYmes = subNombre.substring(0,i-3);
         break;
       }
     }
     año = nombre.substring(tamFecha-4,tamFecha);
     //fin de obtener fecha
     txtNombre = new TextField("Nombre",diaYmes+año,30,TextField.ANY);
     this.append(txtNombre);


Título: Re: obtener fecha en j2me
Publicado por: Debci en 15 Agosto 2010, 11:09 am
:)

Saludos


Título: Re: obtener fecha en j2me
Publicado por: athlit en 17 Agosto 2010, 15:07 pm
Buenas,
para darle el formato que quieres tambien tienes esta opción:

Código:
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat();
String fecha = sdf.format(d);

Tendrás xx/xx/xxxx xx:xx
Le quitas la hora y listo.

Un saludo.


Título: Re: obtener fecha en j2me
Publicado por: Gallu en 17 Agosto 2010, 15:26 pm
No es recomendable usar Date , como han dicho esta deprecate, podrías hacer lo siguiente

Código
  1.  
  2. import java.util.*;
  3.  
  4. class MyCalendario extends GregorianCalendar{
  5. public MyCalendario(int year, int month, int date ){
  6. super(year,month,date);
  7. }
  8. public MyCalendario(){
  9. }
  10.  
  11. public String toString(){
  12. return (this.get(Calendar.DAY_OF_MONTH) + " / "+ this.get(Calendar.MONTH)+ " / " + this.get(Calendar.YEAR));
  13. }
  14. }
  15. class PruebaCalendario{
  16. public static void main(String []arg){
  17. MyCalendario cal = new MyCalendario();
  18. System.out.println(cal);
  19. }
  20. }
  21.  


Título: Re: obtener fecha en j2me
Publicado por: athlit en 17 Agosto 2010, 17:33 pm
Buenas Didacso,
si Date está anticuado, tomo nota.

Podrias explicar a un novato como yo el porque de:
Código:
public MyCalendario(){
}

y

Código:
public String toString()

¿Que hacen ambos? El primero declaras un metodo vacio? Y el segundo declaras un metodo que devolverá un String y le haces el casting a String? (¿?)

Te agradecería me lo aclararas para lograr entenderlo.

Muchas gracias de antemano.

Un saludo.


Título: Re: obtener fecha en j2me
Publicado por: Gallu en 17 Agosto 2010, 18:08 pm

Podrias explicar a un novato como yo el porque de:
Código:
public MyCalendario(){
}

y

Código:
public String toString()

¿Que hacen ambos? El primero declaras un metodo vacio? Y el segundo declaras un metodo que devolverá un String y le haces el casting a String? (¿?)

Te agradecería me lo aclararas para lograr entenderlo.

Muchas gracias de antemano.

Un saludo.

Primero , el método vacio es un constructor de la clase MyCalendario, si te fijas ,  cree dos constructores , uno que recibe tres parámetros y uno que no recibe ninguno , es más que nada para poder crear objetos asi
Código
  1. MyCalendario calendario = new MyCalendario();
  2.  
de esta manera creo un calendario apuntando a la fecha de hoy.
Segundo , el método toString se sobreescribe para que en llamadas como
Código
  1. MyCalendario calendario = new MyCalendario();
  2. System.out.println(calendario);
  3.  
se muestre sólamente la información que me interesa mostrar de mi objeto, bien pude crear un método en MyCalendario llamado , getFecha(), y que me devuelva la fecha que envuelve dicho objeto en el formato que me de la gana , pero me parecio más rápido sobreescribir toString, para que me entiendas lo sigueinte es equivalente
Código
  1. MyCalendario calendario = new MyCalendario();
  2. System.out.println(calendario);
  3.     es equivalente a
  4. System.out.println(calendario.toString());
  5.  
si compilas y ejecutas el código te darás cuenta que la salida es
dd/mm/aaaa , o sea , lo que devuelve toString(). Espero haber sido claro .


Título: Re: obtener fecha en j2me
Publicado por: athlit en 18 Agosto 2010, 10:12 am
Hola Didacso,
no podrias haberte explicado mejor.

Muchas gracias por las aclaraciones, me han servido de mucho.

Un saludo!


Título: Re: obtener fecha en j2me
Publicado por: coadki en 5 Enero 2011, 21:20 pm
Hola amigo supongo que ya lo resolviste pero de todas formas lo escribire lo que hice para conseguir es la fecha fue primero fue utilizar esta funcion private String[] split(String original) {
Vector nodes = new Vector();
String separator = " ";
// Parse nodes into vector
int index = original.indexOf(separator);
while(index>=0) {
nodes.addElement( original.substring(0, index) );
original = original.substring(index+separator.length());
index = original.indexOf(separator);
}
// Get the last node
nodes.addElement( original );

// Create splitted string array
String[] result = new String[ nodes.size() ];
if( nodes.size()>0 ) {
for(int loop=0; loop<nodes.size(); loop++)
{
result[loop] = (String)nodes.elementAt(loop);
System.out.println(result[loop]);
}

}

return result;
}
con la cual separo lo que nos da el DATE y lo unico es ver cuales son los indices que nos interesan saludos.


Título: Re: obtener fecha en j2me
Publicado por: josco en 6 Enero 2011, 01:44 am
ok gracias lo probare, ya lo habia resuelto.  ::)