Avatar billede tyf Nybegynder
13. december 2002 - 13:41 Der er 9 kommentarer og
1 løsning

Calender + Date i J2me

Hvordan kan man i j2me skabe en string bestående  af time/minut/dag/måned/år - dvs. hente det aktuelle tidspunkt fra PC'en.
Jeg har prøvet med Date.getTime, men det giver blot et antal millisekunder.
Jeg kan desuden se, at j2me ikke indeholder gregoriancalender eller simpledate.

Hvad skal jeg gøre?
Avatar billede disky Nybegynder
13. december 2002 - 13:48 #1
Calender cal=Calender.getInstance();
cal.setTime(DIN_DATE);


Nu piller du så timer, minutter, dag, måned og år og via .get()

f.eks.

int dag=cal.get(Calendar.DATE);
int minut=cal.get(Calendar.MINUTE);

Lav selv de sidste.

Disse sammensætter du så til dit format.

String datoen=""+time+"/"+minut+"/"+dag+"/"+maaned+"/"+aar;

Så er datoen formateret som du ønsker det.
Avatar billede tyf Nybegynder
16. december 2002 - 11:27 #2
hvad er DIN_DATE? hvordan configureres den?
Avatar billede disky Nybegynder
16. december 2002 - 11:32 #3
DIN_DATE er det Date objekt du har som du ønsker at udskriver i dit eget format.
Avatar billede tyf Nybegynder
16. december 2002 - 12:18 #4
private String Dato(){
  dato = new Date();
  Calendar cal=Calendar.getInstance();
  cal.setTime(dato); //når denne linie udkommenteres skriver den også nedenstående fejldato.


  int dag=cal.get(Calendar.DATE);
  int maaned=cal.get(Calendar.MONTH);
  int aar=cal.get(Calendar.YEAR);
  int minut=cal.get(Calendar.MINUTE);
  int time=cal.get(Calendar.HOUR);

  datoString = new String("/"+time+"/"+minut+"/"+dag+"/"+maaned+"/"+aar);
  return datoString;

compileren viser følgende dato-output: 12/0/1/0/2000

Hvorfor viser den det?
Vi vil jo gerne have den tid der står på computeren...
Avatar billede disky Nybegynder
16. december 2002 - 12:35 #5
Fordi du har sagt du gerne ville havde det format, jævnfør dit spørgsmål.

Og den udskriver datoen 12:00 den 1/1/2000 (Januar har værdien 0)
Avatar billede disky Nybegynder
16. december 2002 - 12:38 #6
Dette eksempel her som er bygget på dit eksempel virker præcis som forventet den udskriver klokkeslet og dags dato:
/*
* DatoTest.java
*
* Created on 16. december 2002, 12:36
*/
import java.util.*;
/**
*
* @author  Disky
* @version
*/
public class DatoTest
{
    private String dato()
    {
        Date dato = new Date();
        Calendar cal=Calendar.getInstance();
        cal.setTime(dato); //når denne linie udkommenteres skriver den også nedenstående fejldato.
       
       
        int dag=cal.get(Calendar.DAY_OF_MONTH);
        int maaned=cal.get(Calendar.MONTH)+1;
        int aar=cal.get(Calendar.YEAR);
        int minut=cal.get(Calendar.MINUTE);
        int time=cal.get(Calendar.HOUR_OF_DAY);
       
        String datoString = new String("/"+time+"/"+minut+"/"+dag+"/"+maaned+"/"+aar);
        return datoString;
    }
    /** Creates new DatoTest */
    public DatoTest()
    {
        String dagsDato=dato();
        System.out.println("Dags dato = "+dagsDato);
    }
   
    /**
    * @param args the command line arguments
    */
    public static void main(String args[])
    {
        new DatoTest();
    }
   
}
Avatar billede tyf Nybegynder
16. december 2002 - 13:36 #7
Ja det virker fint men kan den ikke registrere det reelle tidspunkt og udskrive: 13.33/16.12.02  - dvs. klokken og dato lige nu!
Avatar billede tyf Nybegynder
16. december 2002 - 13:38 #8
og hvorfor går tiden ikke - hver gang man checker, står der den samme dato
Avatar billede disky Nybegynder
16. december 2002 - 13:51 #9
Fordi den skal køre i et minut for at minutterne skifter :)

Prøv dette eksempel der har sekunder med, den leger ud i 100 sekunder:
/*
* DatoTest.java
*
* Created on 16. december 2002, 12:36
*/
import java.util.*;
/**
*
* @author  thygesen
* @version
*/
public class DatoTest
{
    private String dato()
    {
        Date dato = new Date();
        Calendar cal=Calendar.getInstance();
        cal.setTime(dato); //når denne linie udkommenteres skriver den også nedenstående fejldato.
   
        int dag=cal.get(Calendar.DAY_OF_MONTH);
        int maaned=cal.get(Calendar.MONTH);
        int aar=cal.get(Calendar.YEAR);
        int minut=cal.get(Calendar.MINUTE);
        int time=cal.get(Calendar.HOUR_OF_DAY);
        int sekund=cal.get(Calendar.SECOND);
       
        String datoString = new String("/"+time+"/"+minut+"/"+sekund+"/"+dag+"/"+maaned+"/"+aar);
        return datoString;
    }
    /** Creates new DatoTest */
    public DatoTest() throws InterruptedException
    {
        for(int x=0;x<100;x++)
        {
        System.out.println("Dags dato = "+dato());
        java.lang.Thread.sleep(1000);
        }
    }
   
    /**
    * @param args the command line arguments
    */
    public static void main(String args[]) throws InterruptedException
    {
        new DatoTest();
    }
   
}



p.s. Dette er jo ikke en midlet, men jeg gider ikke skulle uploade til min telefon for at teste, princippet er det samme.
Avatar billede tyf Nybegynder
16. december 2002 - 14:08 #10
mange tak for hjælpen...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester