Millisekunde zwischen 2 Daten

JSCHLAG

Mitglied
Ich habe überall im Internet recherchiert und nachgeschaut, entweder funktionier der Code nicht, oder sie verfolgten andere Ziele.

Ich will ein Jahr,Monat,Tag,Stunde,Minute,Sekunde-Datum haben was aktuell ist und das gleiche Datum Format für einen frühreren Zeitpunkt.

Ich möchte im Grunde nur die Millisekunden zwischen zwei Daten zb. 2018,01,18,20,18,56(aktuell) und 2017,04,21,20,12,32

Das ist der letzte Code Schnipsel den ich für mein Projekt brauche, danach werde ich hoffentlich niemanden mehr mit meinen Problemen nerven.😳
 
Mit der Java8 Date-API müsste das eig. recht einfach gehen.
Java:
LocalDateTime now = LocalDateTime.of(2018,01,18,20,18,56);
LocalDateTime other = LocalDateTime.of(2017,04,21,20,12,32);
long secondsBetween = ChronoUnit.SECONDS.between(other, now);
 
@Robat Danke, mir ist aber mittlerweile ein anderes Problem eingefallen.

Ich möchte mein GregorianCalendar cal_1 abspeichern und beim Start des Programms wieder laden

Abspeichern:
Java:
@Override
        public void windowClosing(WindowEvent e) {
            Formatter x=null;
            File f=new File("C://test//stats.txt");
       
                try{x=new Formatter(f);
                }catch(FileNotFoundException e2){
                    e2.printStackTrace();
                }
            DecimalFormat format = new DecimalFormat("###00.##");
            x.format("%s",format.format(new Double(hunger)));
            x.format(" %s",format.format(new Double(gsnd)));
            x.format(" %s",format.format(new Double(sbr)));
            x.format(" %s",format.format(new Double(enr)));
            x.format(" %s",/*cal_1*/);
            x.close();
        }

Start:
Java:
public void load(){
            File f=new File(("C://test//stats.txt"));
            Scanner s = null;
            try{s=new Scanner(f);}
            catch(FileNotFoundException e){e.printStackTrace();}
   
   
        if(s.hasNext()){
            hunger=s.nextDouble();
            gsnd=s.nextDouble();
            sbr=s.nextDouble();
            enr=s.nextDouble();
              /*cal_2=s.???*/
       
       
        }

Auswertung:
Java:
long time = cal_1.getTime().getTime() - cal_2.getTime().getTime();
        System.out.println(time);
 
Du solltest dich erstmal mit einem Problem beschäftigen, anstatt direkt das nächste auszugraben 😉

So oder so:
Wenn du das gerne abspeichern willst würde ich mir einfach das Datum in einem entsprechenden Format parsen (Bspw: dd MM yyyy) und genau diesen String abspeichern.
Den kannst du dann beim auslesen der Datei einfach wieder in ein Calendar-Objekt laden.

Java:
DateFormat df = new SimpleDateFormat("dd MM yyyy");
Date date = df.parse("18 02 2018");
Calendar cal = new GregorianCalendar();
cal.setTime(date);
 
@Robat das differenzieren der zwei Daten in Millisekunden habe ich bereits verstanden. Jedoch stellt sich mir noch die Frage, wie ich cal_1 erstmal abspeichern soll. Würde ich einfach cal_1 reinballern würde ja ein ganzes Object abgespeichert werden(java.util...).
 
Ich würde dir stark dazu raten, Calender und Date zu vergessen und stattdessen auf java.time.* zu setzen 😉
 

Zurück
Oben