Ich habe eine CSV-Datei, in der eine Zeitreihe mit Zeitspalten in der Form 20160101:1910 steht. Vor dem Doppelpunkt das Datum, dahinter die Uhrzeit hhmm. Wie bekommt man daraus eine reine Sekundenangabe? LibreOffice kann das wohl nicht? Bin aber mit Excel-Kram echt unerfahren.
Abdul K. schrieb: > LibreOffice kann das wohl nicht? Bin aber mit Excel-Kram echt > unerfahren. Doch dazu gibt es eine Funktion. Wobei was willst du als Antwort? Sekunden seit dem Tag "0" des Gregorianischen Kalenders. Oder Sekunden-Zahl zweier Zeit-Bezugspunkte ? Je nach dem brauchst du eine andere Formel, bzw. Funktion.
Abdul K. schrieb: > Vor dem Doppelpunkt das Datum, dahinter die Uhrzeit hhmm. > Wie bekommt man daraus eine reine Sekundenangabe? Stunden und Minuten lassen sich einfach in Sekunden umrechnen, auch mit LibreOffice. Die letzten vier Zeichen deines Datum/Zeit-Strings enthalten zweistellig die Stunden und zweistellig die Minuten. Du kannst deine eigenwilligen Strings einfach in ein Standarddatumsformat umsetzen und dann eine der eingebauten Funktionen benutzen oder du extrahierst die Teilstrings, wandelst sie in Zahlen um und berechnest daraus deine Sekunden.
Abdul K. schrieb: > Wie bekommt man daraus eine reine Sekundenangabe? Zuerst einmal mußt du auch einen Bezugs-zeitpunkt haben. Meinst du die Differenz zwischen dem angegebenen Zeitpunkt und dem aktuellen Zeitpunkt ? Die Sekunden mußt du dir dann selber ausrechnen. Am besten ein kleines Script in der Sprache deiner Wahl schreiben, das die .csv Zeile für Zeile ausliest und das jeweilige Datum konvertiert zurückschreibt.
So ähnlich wie dort? https://de.extendoffice.com/product/kutools-for-excel/excel-convert-time-to-seconds-minutes-hours.html
Grüß Dich Abdul! Bei Excel2013 ist das angegebene Datum "1.1.2016 19:10" als Zahl dargestellt 42370,79861. Dazu einfach bei Zelle formatieren von Benutzerdefiniert (TT.MM.JJJJ hh:mm) auf Zahl oder Standard umstellen. Diese kann man mit 3600 multiplizieren: 152534875,00 Oder wir rechnen die Tage nach der alten TI58-Formel* umgerechnet mal 24*3600=86400, Stunden mal 3600, Minuten mal 60. Dann kommt für Dein Datum 736329*86400+19*3600+10*60=63618894600 heraus. *) Siehe Beitrag "TI58 TI-58 TI59 TI-59 solid state software modul Programm 20" Aufpassen, die Formeln änderten sich zwischen den einzelnen Excel-Versionen und waren teilweise fehlerhaft.
> Diese kann man mit 3600 multiplizieren: 152534875,00
Korrektur: man muss noch mal 24 multiplizieren:
24*3600=86400
42370,79861*86400=3660836999,904 also ungefähr 3660837000 Sekunden seit
dem Jahre 1900.
Die TexasInstruments-Formel rechnet ab etwa dem Jahre 0:
736329/365,25=2015,95893
Abdul K. schrieb: > Ich habe eine CSV-Datei, in der eine Zeitreihe mit Zeitspalten in der > Form 20160101:1910 steht. Vor dem Doppelpunkt das Datum, dahinter die > Uhrzeit hhmm. > Wie bekommt man daraus eine reine Sekundenangabe? Ist doch easy. Erstmal mit einem Editor, der Ersetzung auf Basis von regulären Ausdrücken beherrscht, diese völlig schwachsinnig formatierte Zeitspalte (welcher völlig Blinde Wichser schreibt denn sowas?) in ein übliches Representationsformat für datetime umwandeln. Danach ist es dann kein Problem mhr, die Sache mit Excel oder irgendeiner anderen Tabellenkalkulation einzulesen und mit dem jeweiligen Bestand an eingebauten Funktionen in "Sekunden" (die dann sinnvollerweise bezogen auf den Zeitstempel der ersten Zeile) umzuwandeln. Kinderkram. Der Profi benötigt keine Minute, um sowas triviales zu erledigen.
Wolfgang schrieb: > Du kannst deine eigenwilligen Strings einfach in ein > Standarddatumsformat umsetzen und dann eine der eingebauten Funktionen > benutzen oder du extrahierst die Teilstrings, wandelst sie in Zahlen um > und berechnest daraus deine Sekunden. Das ist ein Format der EU, ich finde es auch seltsam. Wie kann ich denn Teilstrings extrahieren und zu einer letztlich Zahl zusammensetzen?
Zeige doch mal so eine Zeile der .csv - Datei. Am besten mit den ganzen Spalten. Und schreibe mal genau, was du willst. Sollen nur die Stunden und Minuten (also letzte 4 Ziffern) oder gar mit Datum in Sekunden berechnet werden ? Sind alle Spalten mit so einem Datum besetzt, oder geht es nur um eine Spalte ? Ansonsten stochern wir hier weiterhin im Nebel.
:
Bearbeitet durch User
Abdul K. schrieb: > Das ist ein Format der EU Tatsächlich? Festgelegt in welcher EU-weit gültigen Norm? > Wie kann ich denn Teilstrings extrahieren und zu einer letztlich Zahl > zusammensetzen? Die Antwort wurde dir bereits gegeben.
c-hater schrieb: >> Das ist ein Format der EU > > Tatsächlich? Festgelegt in welcher EU-weit gültigen Norm? Gute Frage. Die Daten kommen von hier: https://re.jrc.ec.europa.eu/pvg_tools/en/#MR Hab einen reduzierten Datensatz angehangen. Was ich hinbekomme, habe ich bereits gelöscht aus dem EU-Bloat. > >> Wie kann ich denn Teilstrings extrahieren und zu einer letztlich Zahl >> zusammensetzen? > > Die Antwort wurde dir bereits gegeben. Ich habe keine Ahnung wie man das in LibreOffice einsetzen soll. Wohin? Das einzige was ich hinbekomme, ist Spalten löschen. Ich bin da leider völliger NOOP. Ich möchte letztlich mehrere Jahre in LTspice als PWL importieren. Dafür brauch ich dann aber absolute <kontinuierliche> Sekundenangaben und den Strahlungswert aus der zweiten Spalte. Muß jetzt auch nicht Excel sein. Was in C oder Python wäre auch ok.
:
Bearbeitet durch User
=teil(a1;1;4) --> 2016 =teil(a1;5;2) --> 01 =teil(a1;7;2) --> 01 etc
Abdul K. schrieb: > Gute Frage. Die Daten kommen von hier: > https://re.jrc.ec.europa.eu/pvg_tools/en/#MR Nunja, wohl aus einer Quelle in der EU-TLD. Aber nix, was die EU verantwortet oder für was EU-Normen zwingend anwendbar wären. Jeder hergelaufene Vollhonk kann eine Subdomain in *.eu registrieren und völlig beliebigen Bullshit dort veröffentlichen. Das solltest solltest du zuerst mal begreifen lernen, bis du das nicht begriffen hast, bist du auch nur eins: ein Vollhonk... > Ich habe keine Ahnung wie man das in LibreOffice einsetzen soll. Eben nicht in LibreOffice (oder sonst einer Tabellenkalkulation), sondern vorher. Einfach einen Editor verwenden, der "regular expressions" kann und Ersetzungen auf Basis eben selbiger. Es gibt unzählige für jedes derzeit relevante OS.
c-hater schrieb: > Das solltest solltest du zuerst mal begreifen lernen, bis du das nicht > begriffen hast, bist du auch nur eins: ein Vollhonk... Trink mal wieder ein Glas Gülle, sonst läufst du noch heiß.
Hab es mal konvertiert. Ist nun die Frage, ob das das richtige Format für dich wäre. Du hast ja noch nicht gesagt, von welchem Vergleichswert wir ausgehen sollen. Hier habe ich mal das ganze Datum mit Stunden und Minuten genommen.
:
Bearbeitet durch User
c-hater schrieb: > völlig Blinde Wichser Unser über alles geliebte Hasser erzählt mal wieder von zu Hause...
Beitrag #6842775 wurde von einem Moderator gelöscht.
Beitrag #6842776 wurde von einem Moderator gelöscht.
Beitrag #6842777 wurde von einem Moderator gelöscht.
Abdul K. schrieb: > Wie kann ich denn Teilstrings extrahieren und zu einer letztlich Zahl > zusammensetzen? Einfach den String in seine Bestandteile (Jahr, Monat, Tag, Stunde, Minute) zerlegen. Das geht in Libreoffice ganz einfach mit einer Formel, wobei LEFT, MID und RIGHT Deine Freunde wären. Die zerlegten Anteile setzt man in ein gängiges Datumsformat zusammen, z.B. 01.01.2016. Diesen String übergibt man an DATEVALUE und bekommt die Tagesnummer ab dem 1.1.1900. Diesen Wert multipliziert man mit 3600 und 24, womit man die Zahl der Sekunden seit dem 1.1.1900 hat. Zu dem Ganzen addiert man man noch die Uhrzeit in Sekunden umgerechnet. Man braucht Libreoffice 5 Funktionen (LEFT, MID, RIGHT, DATEVALUE, VALUE) die man geeignet kombiniert. Der Rest ist Mathematik. Das war jetzt schwer.
Habe es gerade mal in Libreoffice getestet und es ist bibbi einfach. Gut in einer Minute, wie c-hater mein habe ich es nicht geschafft, aber in 2 Minuten ist es machbar.
Deine Erklärung klingt ausführlich genug, das kann ich mal probieren. Ich habe keinerlei Problem mit Datumsmathe, aber mit der Bedienung von Office. --- Mir scheint c-hater ist gar nicht der Originale.
Zeno schrieb: > Man braucht Libreoffice 5 Funktionen (LEFT, MID, RIGHT, DATEVALUE, > VALUE) die man geeignet kombiniert. Der Rest ist Mathematik. > Das war jetzt schwer. Naja, LEFT + RIGHT kann man sich sparen. Dafür braucht man LEN dringender. So bekommt man wenigstens eine gewisse Sicherheit rein, wenn man die Formel "Runter kopiert".
Abdul K. schrieb: > > Das ist ein Format der EU, ich finde es auch seltsam. > Wie kann ich denn Teilstrings extrahieren und zu einer letztlich Zahl > zusammensetzen? hat sich ja erledigt, ISO 8601 artig?! T scheint der "offizielle" seperator zu sein 20160101:1910 20160101T1910 .... evtl. interessant, test: $date -d '20160101:1910' date: invalid date ‘20160101:1910’ $date -d '20160101T1910' Fri Jan 1 13:10:00 CET 2016 date -d '20160101T1910' +%s 1451650200 ---- https://en.wikipedia.org/wiki/ISO_8601 https://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html
eProfi schrieb: >> Diese kann man mit 3600 multiplizieren: 152534875,00 > > Korrektur: man muss noch mal 24 multiplizieren: > 24*3600=86400 > 42370,79861*86400=3660836999,904 also ungefähr 3660837000 Sekunden seit > dem Jahre 1900. > > Die TexasInstruments-Formel rechnet ab etwa dem Jahre 0: > 736329/365,25=2015,95893 :) Geltungsbereich der Jahreszahlen Die Norm* lässt nur die Jahreszahlen von 1583 (dem Jahr nach Einführung des gregorianischen Kalenders) bis 9999 ohne weitere Vereinbarung zu. *https://de.wikipedia.org/wiki/ISO_8601
Ich würde mich da auch an die allgemeinen Regeln halten. Stichtag : 30.12.1899 Mit dieser Referenz arbeiten schließlich viele, wie Delphi, VBA, Access usw. Datumsangaben vor dieser Referenz werden als Minuswerte angezeigt. Also : 01.01.1900 -> 2 30.12.1899 -> 0 29.12.1899 -> -1 01.01.0001 -> -693593
Hall Abdul K., Abdul K. schrieb: > Ich habe eine CSV-Datei, in der eine Zeitreihe mit Zeitspalten in der > Form 20160101:1910 steht. Vor dem Doppelpunkt das Datum, dahinter die > Uhrzeit hhmm. > Wie bekommt man daraus eine reine Sekundenangabe? > > LibreOffice kann das wohl nicht? Bin aber mit Excel-Kram echt > unerfahren. es gibt zwei Lösungen. Entweder schreibst Du Dir einen Parser in VBA (siehe Beitrag Heinz B.), also eine Prozedur in VBA (das ist wie die Programmiersprache Basic) und liest die CSV-Datei zeilenweise ein und befüllst die Excel-Zellen derart oder Du öffnest die CSV-Datei mit Libre-Office und fügst einfach eine zusammengesetzte Funktion in eine Zelle ein und kopierst diese Zelle die Spalte hinab. Anbei erhältst Du die zweite Lösung. Solche Formate mit festen Positionen kann man ganz simpel mit ein paar Funktionsaufrufen parsen. Ich arbeite zu Hause mit Excel 2000, habe aber hier auch Libre Office 6.5.7.2 am laufen. Die Methode ist unter beiden Office-Paketen dieselbe. Vermutlich sind auch die Funktionsnamen gleich. Um eine kontinuierliche Zeitdarstellung (Deine Anforderung) z.B. für Charts zu gewährleisten, wandele ich die Datums- und Zeitangabe in die Excel-interne Darstellung um, weil die interne Darstellung das gewährleistet. Excel bildet das Datum als Ganzzahl ab und die Uhrzeit als Fraktion von 1. Deswegen kann man ganz einfach schreiben: ' Pseudocode sek= [ Datum ( Jahr, Monat, Tag ) + Zeit ( Stunde, Minute, Sekunde) ] * 24*60*60 Im folgenden sind LINKS, TEIL und RECHTS String-Operationen, mit "+0" konvertiere ich die Strings schnell in numerische Werte anstatt die Funktion =wert() zu nutzen. =(DATUM(LINKS(A1;4)+0;TEIL(A1;5;2)+0;TEIL(A1;7;2)+0)+ZEIT(TEIL(A1;10;2)+ 0;RECHTS(A1;2)+0;0))*86400 Klick' einfach mal auf das blaue fx-Symbol. Dahinter verbirgt sich der Funktionsassisten - damit hättest Du diese Lösung auch geschafft!
:
Bearbeitet durch User
oszi40 schrieb: > So ähnlich wie dort? > https://de.extendoffice.com/product/kutools-for-excel/excel-convert-time-to-seconds-minutes-hours.html Nein. Hier sind die excelfernen Datums- und Zeitstrings schon gewandelt. Dieser Link löst nicht das Wandlungsproblem. Wolfgang schrieb: > Abdul K. schrieb: >> Vor dem Doppelpunkt das Datum, dahinter die Uhrzeit hhmm. >> Wie bekommt man daraus eine reine Sekundenangabe? > > Stunden und Minuten lassen sich einfach in Sekunden umrechnen, auch mit > LibreOffice. Die letzten vier Zeichen deines Datum/Zeit-Strings > enthalten zweistellig die Stunden und zweistellig die Minuten. Du kannst > deine eigenwilligen Strings einfach in ein Standarddatumsformat umsetzen > und dann eine der eingebauten Funktionen benutzen oder du extrahierst > die Teilstrings, wandelst sie in Zahlen um und berechnest daraus deine > Sekunden. Wolfgang, hier fehlt die Erklärung des Standarddatumsformats. eProfi schrieb: > Korrektur: man muss noch mal 24 multiplizieren: > 24*3600=86400 > 42370,79861*86400=3660836999,904 also ungefähr 3660837000 Sekunden seit > dem Jahre 1900. Die Datumsangabe liegt doch noch gar nicht als numerischer Wert vor. Von daher ist der Link nicht hilfreich. Nach Konvertierung ist alles simpel. c-hater schrieb: > (welcher völlig Blinde Wichser schreibt denn sowas?) c-hater schrieb: > Das solltest solltest du zuerst mal begreifen lernen, bis du das nicht > begriffen hast, bist du auch nur eins: ein Vollhonk... Na, was ist denn das für eine vulgäre Sprache? Es ist noch kein Meister vom Himmel gefallen. > Kinderkram. Der Profi benötigt keine Minute, um sowas triviales zu > erledigen. Ja natürlich ist das simpel. Aber Du hast es leider nicht geliefert. Bist Du etwa kein Profi? Bist Du etwa - ein "Vollhonk"? Das will ich nicht glauben müssen! c-hater schrieb: > Einfach einen Editor verwenden, der "regular expressions" kann und > Ersetzungen auf Basis eben selbiger. Es gibt unzählige für jedes derzeit > relevante OS. Das klingt interessant. "Regular expressions" habe ich nicht drauf, aber das ist nicht der Grund, wieso ich behaupte, dass das von hinten durch die Brust in's Auge geschossen ist. Zeno schrieb: > Habe es gerade mal in Libreoffice getestet und es ist bibbi einfach. Gut > in einer Minute, wie c-hater mein habe ich es nicht geschafft, aber in 2 > Minuten ist es machbar. An c-hater komme ich auch nicht heran. Gepriesen sei der Excel-Superchecker! Aber mein Vorbild ist er trotzdem nicht. :) Schlaumaier schrieb: > Naja, LEFT + RIGHT kann man sich sparen. Dafür braucht man LEN > dringender. Nein. LEN braucht man nur für Formate, die in der Breite schwanken. Setzen, sechs, Schlaumeier (wie auch sonst fast immer). Fazit Fremde Zeitreihen kommen fast nie mundgerecht daher, finde ich. Immer muss man nacharbeiten. Mittlerweile glaube ich, das ist pure Bosheit der Autoren. :)
:
Bearbeitet durch User
Peter M. schrieb: > Das klingt interessant. "Regular expressions" habe ich nicht drauf, aber > das ist nicht der Grund, wieso ich behaupte, dass das von hinten durch > die Brust in's Auge geschossen ist. Die regulären Ausdrücke braucht man hier in der Tat nicht zwingend, da der Datums-String vor dem Doppelpunkt immer 8 Zeichen lang und der Zeit-String hinter dem Doppelpunkt immer 4 Zeichen lang ist. Reguläre Ausdrücke würden erst interessant werden, wenn die Längen der beiden Strings schwanken würden. Hier ist das Abgreifen mit den normalen Stringfunktionen erheblich leichter und belastet einen Anfänger nur zusätzlich (Einlernzeit). Hier mal mein Profan (Basic) Code :
1 | dbdatum = DToc$(Left$(s, 8)) ' DB-Format TT.MM.JJJJ |
2 | dbzeit = Ins$(":", Mid$(s, 10, 4), 3) ' normales Zeitformat Std:Min |
3 | datum = DT("SetTime", dbzeit, DT("SetDate", dbdatum)) 'als Fließkommazahl |
4 | ' mit Datum + Zeit |
5 | AddString(0, Str$(Int(Round(datum * 86400, 0))) + "," + SubStr$(s, 2, ",")) ' Ausgabe mit kfm. Runden |
Wie man sieht, ist das gar nicht viel Schnickschnack, was die Stringfunktionen betrifft.
:
Bearbeitet durch User
Peter M. schrieb: > Nein. LEN braucht man nur für Formate, die in der Breite schwanken. > Setzen, sechs, Schlaumeier (wie auch sonst fast immer). Schlaumaier schrieb: > So bekommt man wenigstens eine gewisse Sicherheit rein, wenn man die > Formel "Runter kopiert". Ich setzte eine LEN abfrage davor, so kann ich wenigsten ETWAS sicher sein, das es keine Fehlerhaften Eingaben sind. Wenn ich das via Script machen würde würden sogar Logik-Prüfungen drin sein. Die würden dann auch 20160101:4510. Als Fehler erkennen sowie 20160230:1910 Es gibt in Excel-Tabelle nix schlimmeres als Logik-Fehler. Besonders beim Import wo durch seltsame Leerzeichen 342534 als Text gelesen werden. Und man denkt das ist eine Zahl und bildet eine Summe aus Bereichwert. Excel ist so dumm und merkt das nicht. Aber arbeitet ihr halt ohne Netz. Kein Wunder das es dauernd Updates gibt. Ich musste in meiner ganzen Zeit nur einmal ein Update nachschicken, weil ich vergessen habe, bei einer Skalierungsberechnung der Anzeige horizontale Monitore zu berücksichtigen.
Tu' mir einen Gefallen Schlaumeier, (Pukki, Alexander et alii) anstatt hier dumm rumzuquatschen, veröffentlich hier mal Deinen kugelsicheren Importcode. Du bist einfach eine didaktische Null, weil Du auf den Wissenstandes des Fragers bei Ecel, bzw. VBA nicht eingehst. Hier geht es darum, erst einmal eine lauffähige Version zu erstellen, die der Frager auch versteht. Der Rest ist Schmuck am Nachthemd. Gerne kannst Du eine weiter Kontrollspalte in der Exceldatei von Abdul erstellen, in der Du Dich so richtig austoben und gehen lassen kannst anstatt hier wohlfeile Verbesserungsvorschläge zu machen ohne etwas zu realisieren. Danke! P.S.: Es ist kein Qualitätsmerkmal, wenn man dauernd die Identität wechseln muss.
:
Bearbeitet durch User
Abdul K. schrieb: > Muß jetzt auch nicht Excel sein. Was in C oder Python wäre auch ok. Das ist auf jeden Fall die bessere Wahl, wenn du mehr als nur eine CSV-Datei konvertieren möchtest, denn statt Excel-typischer, nerviger Mausklickorgien rufst du einfach ein C- oder Python-Programm auf, das vom Einlesen der CSV-Datei bis zum Abspeichern der PWL-Datei alles in einem Rutsch erledigt. Ich habe dazu mal ein rudimentäres Python-Programm angehängt. Aufruf:
1 | csv2pwl.py input.csv output.txt |
Die Datei output.txt enthält eine Zeit- und eine Datenspalte und kann als PWL-Datei in LTspice geladen werden. Das Programm enthält drei Konfigurationsparameter: - column_no: Die Nummer der Spalte, die extrahiert werden soll - skip_rows: Die Anzahl der Kopfzeilen am Anfang der CSV-Datei, die übersprungen werden sollen - time_format: Das Zeitformat, s. hier https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes
:
Bearbeitet durch Moderator
Welches Python ist da empfehlenswert für Windoof? Yalu unterstützt aktiv meine Faulheit. Das ist gar nicht gut🤣
Yalu X. schrieb: > enn statt Excel-typischer, nerviger > Mausklickorgien rufst du einfach ein C- oder Python-Programm auf hihi. GENAU Allerdings würde ich VB nehmen ;) Ich mag auch nicht diese Formelwusselei bei Excel. Die werden mit zu unübersichtlich wenn ich alles in eine Zeile klatschen muss.
Heinz B. schrieb: > Hab es mal konvertiert. > Ist nun die Frage, ob das das richtige Format für dich wäre. > Du hast ja noch nicht gesagt, von welchem Vergleichswert wir > ausgehen sollen. Danke! Hab das gleich verwendet, damit ich mich sofort in LTspice austoben kann. Den Offset im Datum konnte ich mit meinen rudimentären Excel-Kenntnissen dann sogar noch hinkriegen, so daß der Datensatz nun bei Null beginnt. LTspice kommt sonst nicht damit zurecht. Für die weiteren Jahre werde ich dann die zahlreichen Anregungen hier noch umsetzen. So sieht das Ergebnis übrigens aus: Beitrag "Re: Wie ist der Stromverlauf einer Solarzelle über den Tag?"
Abdul K. schrieb: > Excel-Kenntnissen dann sogar noch hinkriegen, so daß der Datensatz nun das gibt sich doch nichts, Excel u. libreoffice 20160101:1910 | ........ der ist halt falsch gewählt, colon/dp belegt als Zeittrenner T wäre richtig aber im Prinzip egal könnte auch nichts oder x,y,.. stehen 20160101 o. 2016-01-01* ist im Pripzip auch egal da beide Formen vom Text zum Typ Datum konvertiert werden können *wie hier: https://blog.hani-ibrahim.de/en/iso-8601-parsing-in-excel-and-calc.html sind dann halt 8 anstelle 10 u. 4 statt 6 Stellen für Datum bzw. Zeit beknackt ist nat. gleich wieder engl. TIMEVALUE DATEVALUE deutsche Vers. Excel ZEITWERT,DATWERT calc ZEITWERT,DATUMWERT aber im Prinzip gleiches vorgehen
c-hater schrieb: > diese völlig schwachsinnig formatierte > Zeitspalte (welcher völlig Blinde Wichser schreibt denn sowas?) in ein > übliches Representationsformat für datetime umwandeln. Das ist vielleicht ungewöhnlich, aber eine sehr sinnvolles Format, da es auch rein numerisch oder alphabethisch immer richtig sortiert wird. Im Gegensatz zu üblichen wie 1.1.2016 19:10.
c-hater schrieb: > Erstmal mit einem Editor, der Ersetzung auf Basis von > regulären Ausdrücken beherrscht, diese völlig schwachsinnig formatierte > Zeitspalte (welcher völlig Blinde Wichser schreibt denn sowas?) in ein > übliches Representationsformat für datetime umwandeln. Beruhig dich mal wieder. So geht's für eine Datumsstring der Form "yyyymmdd:hhnn" in A1 auch direkt (in "Nullpunkt" muss der Nullpunkt der Zeitzählung in Tagen stehen):
1 | =(DATUMWERT(VERKETTEN(LINKS(A1;4);"-";TEIL(A1;5;2);"-";TEIL(A1;7;2)))+ZEITWERT(VERKETTEN(TEIL(A1;10;2);":";TEIL(A1;12;2)))-Nullpunkt)*24*3600 |
Jobst Q. schrieb: > Im Gegensatz zu üblichen wie 1.1.2016 19:10. Das "übliche Format" (tt.mm.jjjj) wurde 1996 mit der Neuausgabe der DIN 5008 aus der Norm gestrichen. Auf Grund der Trägheit der Masse und mangelndem Verständnis für die Vorteile des Formats nach EN 28601:1992 (jjjj-mm-tt) wurde das alte Format mit seiner verqueren Reihenfolge 2001 wieder in die Schreibstubennorm DIN 5008 aufgenommen. Soviel dazu.
Und das Ungetüm beachtet dann auch Schaltjahr und Schaltsekunde? Das Traurige ist eben die Inkompatibilität verschiedener Plattformen: Gesetz, DIN, Office-Paket Bei allen denkt man sich, die benutzen ihren Erguß nie selbst produktiv.
Hallo Abdul K., Abdul K. schrieb: > Und das Ungetüm beachtet dann auch Schaltjahr und Schaltsekunde? Nein. Für das Schaltjahr gibt es Regeln, die auch beachtet werden. Da die Schaltsekunden nicht regelbasiert eingefügt werden können, werden sie auch nicht beachtet. Deiner Hochpräzisionsanforderung wird Excel nicht gerecht. Ich bezweifele, dass irgendeine Anwendung das tut. Von daher musst Du Dir selbst etwas für den Zweck schreiben. Ich frage mich nur, welche Anwendung diese Anforderung an Genauigkeit stellt.
Ist schon ok, mit der Schaltsekunde hast du natürlich recht. Die Anwendung ist Solar, sieht man ja oben an meiner Verlinkung.
Wolfgang schrieb
1 | ..... 2);":";TEIL(A1;12;2)))-Nullpunkt)*24*3600 |
[/pre] Peter M. (r2d3)
1 | ... 0;RECHTS(A1;2)+0;0))*86400 |
Wozu eigentlich? Excel’s internal date time format is a “real” number where the part before the decimal point is the number of days and the portion after the decimal point is the “fraction” of a day. MS DATEVALUE/TIMEVALUE liefert doch einen Timestamp halt mit Bezug zum ~28th February 1900 calc default 30.12.1899 ...
Jobst Q. schrieb: > Das ist vielleicht ungewöhnlich, aber eine sehr sinnvolles Format, da es > auch rein numerisch oder alphabethisch immer richtig sortiert wird. Im > Gegensatz zu üblichen wie 1.1.2016 19:10. JJJJMMTT habe ich schon oft benutzt zum Sortieren nach Datum. Auch ein Rechnen damit, z.B. Tage dazu zählen / abziehen funktioniert dann auch. Abdul : Habe mein Programm mal als fertige .exe in einer Zip-Datei angehängt, falls du es als Notlösung vorübergehend brauchen solltest. Einfach im Menü DATEI - Laden die zu konvertierende Datei laden und kurz warten (ca. 5 Sekunden). Die fertig konvertierte Datei wird als Test.csv gespeichert.
> mit Bezug zum ~28th February 1900 > Knapp vorbei, > diverse Epochen: https://en.wikipedia.org/wiki/Epoch_(computing) 30 December 1899 Microsoft COM DATE, Object Pascal, LibreOffice Calc, Google Sheets[20] 31 December 1899 Dyalog APL,[21] Microsoft C/C++ 7.0[22] 0 January 1900 Microsoft Excel,[2] Lotus 1-2-3[23] 1 January 1900 Network Time Protocol, IBM CICS, Mathematica, RISC OS, VME, ... 1 January 1904 LabVIEW, Apple Inc.'s .... Microsoft Excel (optionally),[24] IGOR Pro ... 1 January 1970 Unix Epoch aka POSIX time ... ALt wird aber immer noch stimmen: http://www.cpearson.com/excel/datetime.htm The year 1900 was not a leap year. In Excel, the day after 1900-Feb-28 is 1900-Feb-29. In reality, the day after 1900-Feb-28 was 1900-Mar-1 . This is not a "bug". Indeed, it is by design. Excel works this way because it was truly a bug in Lotus 123.
GPS hat auch "Epochen" Da gab es Chipsätze, die nach einem bestimmten Datum irgendwann nicht mehr richtig funktionierten. Kurz vor dem "Jahr 2000 Problem" gab es ein "epoch 1024 problem". https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs#First_GPS_rollover
:
Bearbeitet durch User
tomatotoffel schrieb: > Wozu eigentlich? Weil der TO die Zeit in der Einheit Sekunden haben wollte und Excel/Libreoffice für Datum/Zeit Tage als Einheit verwenden. Christoph db1uq K. schrieb: > GPS hat auch "Epochen" Da gab es Chipsätze, die nach einem bestimmten > Datum irgendwann nicht mehr richtig funktionierten. Das "bestimmte Datum" wiederholt sich nach 1024 Wochen, weil dann der 10-Bit Wochenzähler vom GPS überläuft. Das erste Mal ist es um 0h UTC in der Nacht vom 21. auf den 22. August 1999 passiert. https://en.wikipedia.org/wiki/GPS_week_number_rollover
Danke Heinz! Ich habe mit dem Pythoncode von Yalu schon alles konvertiert. Die maximal möglich abrufbaren Daten über 12 Jahre zu konvertieren, dauerte nur ein paar Sekunden. Die Ergebnisse finden sich alle im Solar-Thread morgen.
Heinz B. schrieb: > Habe mein Programm mal als fertige .exe Wirft unnachvollziehbare Fehlermeldungen. Du hast es auch doppelt eingepackt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.