<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ctime rückwärts?]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen Timestamp (TS), mit:</p>
<p>ctime(&amp;TS)</p>
<p>bekomme ich folgendes:</p>
<p>Sun May 13 10:37:18 2012</p>
<p>Dieses Datum bekomme ich an anderer Stelle in eine string-Variable. Aus dieser sollte ich jetzt wieder den ursprünglichen Timestamp erhalten. Also eigentlich die Umkehrfunktion von ctime <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> Wie mache ich das am Einfachsten?</p>
<p>Habs versucht mit:<br />
struct tm t;<br />
time_t timest;<br />
strptime(str,&quot;%a %b %d %H:%M:%S %Y&quot;, &amp;t);<br />
timest mktime(&amp;t);</p>
<p>Das Ergebnis ist eine lange, negative Zahl:-( Nicht der ursprüchglich Timestamp.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304253/ctime-rückwärts</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 21:02:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304253.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 Jun 2012 21:08:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ctime rückwärts? on Fri, 01 Jun 2012 21:08:53 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe einen Timestamp (TS), mit:</p>
<p>ctime(&amp;TS)</p>
<p>bekomme ich folgendes:</p>
<p>Sun May 13 10:37:18 2012</p>
<p>Dieses Datum bekomme ich an anderer Stelle in eine string-Variable. Aus dieser sollte ich jetzt wieder den ursprünglichen Timestamp erhalten. Also eigentlich die Umkehrfunktion von ctime <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> Wie mache ich das am Einfachsten?</p>
<p>Habs versucht mit:<br />
struct tm t;<br />
time_t timest;<br />
strptime(str,&quot;%a %b %d %H:%M:%S %Y&quot;, &amp;t);<br />
timest mktime(&amp;t);</p>
<p>Das Ergebnis ist eine lange, negative Zahl:-( Nicht der ursprüchglich Timestamp.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218309</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218309</guid><dc:creator><![CDATA[spinne1000]]></dc:creator><pubDate>Fri, 01 Jun 2012 21:08:53 GMT</pubDate></item><item><title><![CDATA[Reply to ctime rückwärts? on Fri, 01 Jun 2012 22:36:12 GMT]]></title><description><![CDATA[<p>strptime ist eine spezielle Funktion auf Unix-Betriebssystemen. Damit sollte das eigentlich gehen, prüf mal deinen Formatstring, deine (C-)locale und den Rückgabewert der Funktion. Standardkonform (reiner C++-Standard, in Unix ist das natürlich standardkonform) ist das jedoch nicht. Willst du standardkonformen Code, wirst du die Eingabe irgendwie parsen müssen. Das ist, sofern es wirklich dieses Datumsformat ist, noch relativ einfach machbar (dazu unten mehr). Aber die eigentliche Frage ist, ob das wirklich sein muss und ob man nicht stattdessen den Zeitstempel in irgendeinem computergeeigneterem Format (z.B. einem time_t, zur Not auch die Zeichenkettendarstellung des Wertes eines time_t (das ist relativ portabel)) hin- und her reichen kann? Es braucht doch sicherlich nicht unbedingt die Umwandlung in ein menschenlesbares Format und anschließende Rückumwandlung.</p>
<p>Falls du das Datum parsen musst:<br />
Den Wochentag kannst du vergessen. Entweder String einlesen für Konsistenzprüfung (Ist die Zeichenkette ein Wochentag? Passt der Wochentag zum Datum?) oder mit ignore bis zum ersten Leerzeichen ignorieren. Der Monat ist kompliziert, da ausgeschrieben. Also Zeichenkette einlesen und alle Möglichkeiten einzeln prüfen. Der Rest ist relativ einfach: Die Zahlen einlesen, die Doppelpunkte dazwischen übergehen (ggf. alles auf Wertebereich prüfen) und dann ein <code>struct tm</code> mit den Werten füllen. Darauf dann mktime, fertig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218334</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 01 Jun 2012 22:36:12 GMT</pubDate></item><item><title><![CDATA[Reply to ctime rückwärts? on Fri, 01 Jun 2012 22:40:23 GMT]]></title><description><![CDATA[<p>Der Timestamp wird in lesbares Format gewandelt, welches dann vom Benutzer geändert werden kann. Danach soll dieses Datum um es zu speichern wieder in einen Timestamp gewandelt werden.<br />
Allerding müsste es nicht genau dieses lesbare Format sein, das hab ich genommen weil es mit ctime halt einfach war:-) Wenn es allerdings ne einfache Möglichkeit gibt einen Timestamp in ein Datum wie 01.02.2012 18:30:00 zu wandeln, welches dann evtl einfacher zurück zu wandeln wäre, würde mir das auch genügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218336</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218336</guid><dc:creator><![CDATA[spinne1000]]></dc:creator><pubDate>Fri, 01 Jun 2012 22:40:23 GMT</pubDate></item><item><title><![CDATA[Reply to ctime rückwärts? on Fri, 01 Jun 2012 22:53:09 GMT]]></title><description><![CDATA[<p>strftime sollte kein Wünsche offen lassen. In C++11 hast du auch den Header chrono, der endlich(!) Datums- und Zeitfunktionen im C++-Stil bietet. Ich habe jedoch keine konkrete Erfahrung damit, außer dass es sicherlich auch damit möglich ist und für C++-Programmierer vermutlich wesentlich intuitiver geht als das low-level-Zeugs aus ctime.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2218340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2218340</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 01 Jun 2012 22:53:09 GMT</pubDate></item></channel></rss>