<?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[Boost: time_to_string]]></title><description><![CDATA[<p>Hallo,<br />
ich muss eine Zeit in einen String umwandeln und wieder zurück. Zuerst hab ich das so gemacht:</p>
<pre><code class="language-cpp">void stringToTime(std::string timestr){
    const char *datum=timestr.c_str();
    strptime( datum, &quot;%a %b %d %H:%M:%S %Y&quot;, &amp;this-&gt;start );
}
std::string timetostring(){
    tm* tmptr = &amp;this-&gt;start;
    time_t tmp = mktime ( tmptr );
    std::string timestr = ctime (&amp;tmp);
    timestr=account::ReplaceString(&quot;\n&quot;,&quot;&quot;,timestr);
    return timestr;
}
</code></pre>
<p>Das hat unter linux einwandfrei funktioniert. Jetzt wollte ich es für Windows compilen, und das geht nicht weil MS strptime nicht implentiert hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Deswegen hab ich zu boost gegriffen:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;boost/date_time/posix_time/posix_time.hpp&gt;
using namespace boost::posix_time;

tm StringToTime(std::string timestr){
	ptime t(time_from_string(timestr));
    tm pt_tm = to_tm( t );
	return pt_tm;
}

int _tmain(int argc, _TCHAR* argv[])
{
    std::string ts1(&quot;2002-01-20 23:59:59.000&quot;);
    std::string ts2(&quot;Mon May 31 12:22:03 2010&quot;);
    StringToTime(ts1); //Funktioniert
    StringToTime(ts2); //Funktioniert nicht
    system(&quot;pause&quot;);
}
</code></pre>
<p>Wenn das Format von oben (2002-01...) kommt der Fehler:</p>
<blockquote>
<p>Unbehandelte Ausnahme bei 0x7c81eb33 in boost.exe: Microsoft C++-Ausnahme: boost::exception_detail::clone_impl&lt;boost::exception_detail::error_info_injector<a href="boost::bad%5C_lexical_cast" rel="nofollow">boost::bad\_lexical_cast</a> &gt; an Speicherposition 0x0012f2c0..</p>
</blockquote>
<p>Wie kann ich mit time_to_string andere Zeit Formate umwandeln. Ich brauche das unbedingt weil ctime eben genau dieses Www Mmm dd hh<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1f2-1f1f2.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--myanmar_burma_"
      title=":mm:"
      alt="🇲🇲"
    />ss yyyy umwandelt...<br />
Hat jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/267850/boost-time_to_string</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 07:02:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/267850.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 31 May 2010 12:32:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost: time_to_string on Mon, 31 May 2010 12:32:34 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich muss eine Zeit in einen String umwandeln und wieder zurück. Zuerst hab ich das so gemacht:</p>
<pre><code class="language-cpp">void stringToTime(std::string timestr){
    const char *datum=timestr.c_str();
    strptime( datum, &quot;%a %b %d %H:%M:%S %Y&quot;, &amp;this-&gt;start );
}
std::string timetostring(){
    tm* tmptr = &amp;this-&gt;start;
    time_t tmp = mktime ( tmptr );
    std::string timestr = ctime (&amp;tmp);
    timestr=account::ReplaceString(&quot;\n&quot;,&quot;&quot;,timestr);
    return timestr;
}
</code></pre>
<p>Das hat unter linux einwandfrei funktioniert. Jetzt wollte ich es für Windows compilen, und das geht nicht weil MS strptime nicht implentiert hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Deswegen hab ich zu boost gegriffen:</p>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &lt;boost/date_time/posix_time/posix_time.hpp&gt;
using namespace boost::posix_time;

tm StringToTime(std::string timestr){
	ptime t(time_from_string(timestr));
    tm pt_tm = to_tm( t );
	return pt_tm;
}

int _tmain(int argc, _TCHAR* argv[])
{
    std::string ts1(&quot;2002-01-20 23:59:59.000&quot;);
    std::string ts2(&quot;Mon May 31 12:22:03 2010&quot;);
    StringToTime(ts1); //Funktioniert
    StringToTime(ts2); //Funktioniert nicht
    system(&quot;pause&quot;);
}
</code></pre>
<p>Wenn das Format von oben (2002-01...) kommt der Fehler:</p>
<blockquote>
<p>Unbehandelte Ausnahme bei 0x7c81eb33 in boost.exe: Microsoft C++-Ausnahme: boost::exception_detail::clone_impl&lt;boost::exception_detail::error_info_injector<a href="boost::bad%5C_lexical_cast" rel="nofollow">boost::bad\_lexical_cast</a> &gt; an Speicherposition 0x0012f2c0..</p>
</blockquote>
<p>Wie kann ich mit time_to_string andere Zeit Formate umwandeln. Ich brauche das unbedingt weil ctime eben genau dieses Www Mmm dd hh<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1f2-1f1f2.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--myanmar_burma_"
      title=":mm:"
      alt="🇲🇲"
    />ss yyyy umwandelt...<br />
Hat jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1904891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1904891</guid><dc:creator><![CDATA[*MOP*]]></dc:creator><pubDate>Mon, 31 May 2010 12:32:34 GMT</pubDate></item><item><title><![CDATA[Reply to Boost: time_to_string on Mon, 31 May 2010 12:54:57 GMT]]></title><description><![CDATA[<p>[MOP] schrieb:</p>
<blockquote>
<p>Hat jemand eine Idee?</p>
</blockquote>
<p>Ja. Doku von boost.Date Time lesen und mit den mitgelieferten I/O-Funktionena rbeiten:<br />
<a href="http://www.boost.org/doc/libs/1_43_0/doc/html/date_time/date_time_io.html" rel="nofollow">http://www.boost.org/doc/libs/1_43_0/doc/html/date_time/date_time_io.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1904903</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1904903</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 31 May 2010 12:54:57 GMT</pubDate></item><item><title><![CDATA[Reply to Boost: time_to_string on Mon, 31 May 2010 13:44:04 GMT]]></title><description><![CDATA[<p>Habs mir angeschaut, aber das sind irgendwie zu viele Informationen auf einmal, ich blick da nicht durch <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
Kann mir jemand ein kleines Beispiel geben, wie ich einen string mit dem Format Www Mmm dd hh<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f1f2-1f1f2.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--myanmar_burma_"
      title=":mm:"
      alt="🇲🇲"
    />ss yyyy in so ein ptime Objekt speichern kann...?<br />
So hab ichs versucht... funktioniert übehaupt nicht, es kommt immer not_a_date_time...</p>
<pre><code class="language-cpp">int main(){
  using namespace boost::gregorian;
  using namespace boost::posix_time;
  using namespace boost::local_time;
  using namespace std;

  /****** basic use ******/
  date d(not_a_date_time); //
  stringstream ss;
  ss &lt;&lt; &quot;Mon May 31 12:22:03 2010&quot;;
  ptime pt(not_a_date_time);
  cout &lt;&lt; pt &lt;&lt; endl; // &quot;not-a-date-time&quot;
  ss &gt;&gt; pt;
  cout &lt;&lt; pt &lt;&lt; endl; // &quot;2004-Feb-29 12:34:56.000789&quot;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1904948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1904948</guid><dc:creator><![CDATA[*MOP*]]></dc:creator><pubDate>Mon, 31 May 2010 13:44:04 GMT</pubDate></item><item><title><![CDATA[Reply to Boost: time_to_string on Mon, 31 May 2010 15:08:16 GMT]]></title><description><![CDATA[<p>Damit bist du genau auf der ersten Seite des IO-Tutorials angelangt. Ein oder zwei seiten weiter werden die facets erklärt, mit denen du das Format für den Input vom default abändern kannst. (Wie dir die Kommentare schon zeigen ist das Forma, was du rein gibst ein anderes, als standardmäßig genutzt wird)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1905021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1905021</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 31 May 2010 15:08:16 GMT</pubDate></item></channel></rss>