Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden

Hey,

Dieses Thema steht im Zusammenhang mit diesem Thema: https://www.java-forum.org/thema/ein-datum-berechnen.186007/ .

Ich möchte nun versuchen, das Datum für einen Datenabgleich abzuspeichern, was jedoch nicht funktioniert.
Ich würde beispielsweise das heutige Datum gerne in einer Variable abspeichern und mit dem Datum in 7 Tagen vergleichen.
Dazu möchte ich beide Variablen quasi abspeichern, d.H. mithilfe des OutputStreams und des Scanners in einer Datei festhalten.
Der OutputStream gibt mir jedoch zurück, dass "LocalDateTime" nicht geschrieben werden kann, auch wenn ich versuche, das Ganze als String abzuspeichern.
Bitte um Hilfe!
Wie kann ich die beiden Variablen in eine Datei schreiben, um sie anschließend miteinander vergleichen zu können?
Wenn das nicht geht, gibt es eventuell eine andere Möglichkeit, die beiden Variablen abzuspeichern und später erneut zu laden, um diese vergleichen zu können?

Danke für jede hilfreiche Antwort!

Mit freundlichen Grüßen
NewJavaDeveloper
 
Wie sieht denn dein Code aus?

Hier mal ein Beispiel wie das gehen könnte:
Java:
import org.apache.commons.io.FileUtils;
import java.io.IOException;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.io.File;

public class Test{

    public static void main(String[] args) throws IOException {
        LocalDateTime now = LocalDateTime.now();
        System.out.println(DateTimeFormatter.ofPattern("dd.MM.YYYY-HH:mm:ss").format(now));
        FileUtils.writeStringToFile(new File("timeTest.txt"), String.valueOf(now.toInstant(ZoneOffset.UTC).toEpochMilli()));


        long savedTimeMillis = Long.parseLong(FileUtils.readFileToString(new File("timeTest.txt")));
        LocalDateTime savedTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(savedTimeMillis), ZoneOffset.UTC);
        System.out.println(DateTimeFormatter.ofPattern("dd.MM.YYYY-HH:mm:ss").format(savedTime));
    }
}
 
Zuletzt bearbeitet:
Wie sieht denn dein Code aus?

DataManager ist die Klasse für die einzelnen Variablen.
Dies sind einzelne Auszüge aus dem Code, die an den entsprechenden Stellen für Probleme bzw. Fehler sorgen:

Java:
DataManager.localBeginningDate = LocalDateTime.now();
DataManager.localEndingDate = LocalDateTime.now().plusDays(7);

public static LocalDateTime localBeginningDate;
public static LocalDateTime localEndingDate;

stream.write(DataManager.localBeginningDate);
stream.write(DataManager.localEndingDate);

bzw. als String gespeichert:

Java:
DataManager.localBeginningDate = LocalDateTime.now().toString();
DataManager.localEndingDate = LocalDateTime.now().plusDays(7).toString();

public static String localBeginningDate = "";
public static String localEndingDate = "";

stream.write(DataManager.localBeginningDate.getBytes());
stream.write(DataManager.localEndingDate.getBytes());

Klappt halt beides irgendwie nicht...
 
@NewJavaDeveloper Ich glaube Du suchst das:
Java:
public static long number_of_days_since_epoch(int to_add) {
    return ChronoUnit.DAYS.between(LocalDate.ofEpochDay(0), LocalDate.now().plusDays(to_add));
}

public static void main(String[] args) {
    System.out.println(number_of_days_since_epoch(0));
}
 

Zurück
Oben