Tag zusammen
Ich überlege gerade, wie es wohl am besten möglich ist, eine Zeitinformation, die mir in einem gewissen Format vorliegt, in ein brauchbares Datum, also z.B. dargestellt durch java.util.Date zu konvertieren.
Das Thema gehört eigentlich fast in Algorithmen und Konzepte, aber ich würde mich freuen, wenn die Standardbibliothek da schon vllcht ein paar Möglichkeiten hätte.
Und zwar liegt mir die (UTC) Zeit folgendermaßen vor:
YYDDD.DDDDD
YY bezeichnet dabei die letzten beiden Ziffern der Jahreszahl.
DDD.DDDDD bezeichnet den Tag des Jahres, der gebrochene Anteil bezeichnet dann logischerweise Stunden, Minuten, Sekunden, ... des jeweiligen Tages.
Also z.B:
11032.50000
Würde jetzt den 1. Februar 2011 12:00 UTC bezeichnen.
Mein Problem ist jetzt, dass wenn ich das händisch umrechnen will, ich gleichzeitig die komplette Betrachtung zwecks Schaltjahren und Co mit programmieren muss. Und darauf hab ich eigentlich weniger Lust ^^
Würde jemanden einfallen, wie das möglichst einfach zu bewerkstelligen ist?
Umwandlung einer Zeitinformation zu java.util.Date
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Umwandlung einer Zeitinformation zu java.util.Date
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
- cloidnerux
- Moderator
- Beiträge: 3123
- Registriert: Fr Sep 26, 2008 4:37 pm
- Wohnort: Ram (Gibts wirklich)
Re: Umwandlung einer Zeitinformation zu java.util.Date
Die Berücksichtigung von allen möglichen Problemen, wie auch das mit dem Schaltjahr, lässt sich in 100 Zeilen code programmieren. Während du also auf eine Antwort wartest, hättest du es schon Programmieren können
Vlt hilft dir auch das: http://www.roseindia.net/java/java-conv ... Date.shtml
Vlt hilft dir auch das: http://www.roseindia.net/java/java-conv ... Date.shtml
Redundanz macht wiederholen unnötig.
quod erat expectandum
quod erat expectandum
- Dirty Oerti
- Beiträge: 2229
- Registriert: Di Jul 08, 2008 5:05 pm
- Wohnort: Thurndorf / Würzburg
Re: Umwandlung einer Zeitinformation zu java.util.Date
Hehe, ich sitze natürlich nicht hier und warte nur auf eine Antwort
Das mit den 100 Zeilen bezweifle ich stark, ich spreche auch von Zeitzonen, Sommerzeit
Hab nun aber eine - wie ich finde - elegante Lösung gefunden:
*edit* "tz" im obigen Beispiel ist die Zeitzone, also ein java.util.TimeZone
*edit2* Wofür ich das gebraucht hab: http://www.castor2.ca/03_Mechanics/03_TLE/Epoch.html
Das mit den 100 Zeilen bezweifle ich stark, ich spreche auch von Zeitzonen, Sommerzeit
Hab nun aber eine - wie ich finde - elegante Lösung gefunden:
Code: Alles auswählen
protected Date date;
public UTCDate(int y, double d)
{
Calendar cal = new GregorianCalendar(tz);
cal.set(Calendar.YEAR, y);
int day = (int) d;
d = d - day;
d = d * 24.;
int hour = (int) d;
d = d - hour;
d = d * 60;
int min = (int) d;
d = d - min;
d = d * 60;
int sec = (int) d;
d = d - sec;
d = d * 1000;
int msec = (int) d;
cal.set(Calendar.DAY_OF_YEAR, day); // Das war sozusagen der Knackpunkt, den ich gesucht hatte :) Und gefunden habe :D
cal.set(Calendar.HOUR_OF_DAY, hour);
cal.set(Calendar.MINUTE, min);
cal.set(Calendar.SECOND, sec);
cal.set(Calendar.MILLISECOND, msec);
this.date = cal.getTime();
}
*edit2* Wofür ich das gebraucht hab: http://www.castor2.ca/03_Mechanics/03_TLE/Epoch.html
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.
Ich helfe gerne!
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.