Ich weiß, dass dies einfach sein kann, aber C++ Ich bezweifle, dass es sein wird. Wie konvertiere ich eine Zeichenfolge in der Form 01.01.2008 in ein Datum, damit ich sie manipulieren kann? Ich bin glücklich, die Schnur in die Bestandteile des Tagesmonatsjahres zu brechen. Auch wenn Lösung nur Windows ist.Konvertiere eine Zeichenfolge in ein Datum in C++
Antwort
#include <time.h>
char *strptime(const char *buf, const char *format, struct tm *tm);
Sie könnten versuchen Boost.Date_Time Input/Output.
Ich fand es heraus ohne strptime
zu verwenden.
das Datum Break down in seine Bestandteile d Tag, Monat, Jahr, dann:
struct tm tm;
time_t rawtime;
time (&rawtime);
tm = *localtime (&rawtime);
tm.tm_year = year - 1900;
tm.tm_mon = month - 1;
tm.tm_mday = day;
mktime(&tm);
tm
nun zu einem time_t
umgewandelt werden können und manipuliert werden.
Die POCO-Bibliothek verfügt über eine DateTimeParser-Klasse, die Ihnen dabei helfen kann. http://www.appinf.com/docs/poco/Poco.DateTimeParser.html
Für alle, die nach strptime()
für Windows suchen, erfordert es die Quelle der Funktion selbst zu arbeiten. Der neueste NetBSD-Code portiert leider nicht einfach auf Windows.
Ich selbst habe die Implementierung here (strptime.h und strptime.c) verwendet.
Ein weiteres hilfreiches Stück Code kann here gefunden werden. Dies stammt ursprünglich von Google Codesearch, das nicht mehr existiert.
Ich hoffe, dies spart eine Menge Suche, da es eine Weile gedauert hat, bis ich das gefunden habe (und meistens bei dieser Frage gelandet bin).
#include <time.h>
#include <iostream>
#include <sstream>
#include <algorithm>
using namespace std;
int main()
{
time_t rawtime;
struct tm * timeinfo;
int year, month ,day;
char str[256];
cout << "Inter date: " << endl;
cin.getline(str,sizeof(str));
replace(str, str+strlen(str), '/', ' ');
istringstream(str) >> day >> month >> year;
time (&rawtime);
timeinfo = localtime (&rawtime);
timeinfo->tm_year = year - 1900;
timeinfo->tm_mon = month - 1;
timeinfo->tm_mday = day;
mktime (timeinfo);
strftime (str, sizeof(str), "%A", timeinfo);
cout << str << endl;
system("pause");
return 0;
}
Funktioniert gut. Mit nur ein wenig Modifikation sollte dies die beste Antwort sein – Everyone
Sie können die Boost-Bibliothek (Cross-Plattform)
#include <stdio.h>
#include "boost/date_time/posix_time/posix_time.hpp"
int main()
{
std::string strTime = "2007-04-11 06:18:29.000";
std::tm tmTime = boost::posix_time::to_tm(boost::posix_time::time_from_string(strTime));
return 0;
}
nutzen Aber das Format sollte erwähnt sein :)
Warum für eine einfachere Lösung gehen nicht boost
using namespace boost::gregorian;
using namespace boost::posix_time;
ptime pt = time_from_string("20150917");
- 1. Konvertiere ein Datum in eine Zeichenfolge in Javascript
- 2. Konvertiere ein Objekt in eine XML-Zeichenfolge
- 3. Konvertiere ein Datum in Nanosekunden in R
- 4. Konvertiere eine String-Variable in ein Datum in Python 3?
- 5. Wie konvertiere ich eine lange in eine Zeichenfolge in C++?
- 6. Wie konvertiere ich eine Zeichenfolge in C# in Byte?
- 7. Wie konvertiere ich ein einzelnes Zeichen in eine Zeichenfolge?
- 8. Wie konvertiere ich ein Datum in ein HTTP-formatiertes Datum in .Net/C#
- 9. Wie konvertiere ich ein Datum in YYYYMMDD?
- 10. Konvertiere ein Datum in 'YYYYMMDDHH24miSS' Format
- 11. Wie konvertiere ich eine JTextField-Zeichenfolge in ein Double?
- 12. Zeichenfolge in Datum konvertieren - C#
- 13. Konvertiere eine Zeichenfolge in einen Schlüssel
- 14. Wie konvertiere ich eine Zeichenfolge in ein Array von Arrays?
- 15. Wie Zeichenfolge Datum in UTC-Datum konvertieren
- 16. Wie konvertiere ich eine Zeichenfolge in eine Liste in Io?
- 17. Wie konvertiere ich eine Zeichenfolge in eine Ganzzahl in JSonne?
- 18. Wie konvertiere ich ein Datetime-Feld in eine formatierte Zeichenfolge in SQL Server 2005?
- 19. Wie konvertiert man eine Zeichenfolge in ein Datum in Sybase
- 20. PHP Zeichenfolge Datum ein Datum in ein anderes Format?
- 21. Konvertiere ein yyyym-Integer nach Datum
- 22. Coffeescript: Wie konvertiere ich eine Zeichenfolge in eine Zahl?
- 23. Wie konvertiere ich eine Zeichenfolge in eine Ganzzahl in Ziel C?
- 24. Wie konvertiere ich eine Zeichenfolge wie "Red" in eine System.Windows.Media.Color?
- 25. Wie konvertiere ich eine UIColor in eine hexadezimale Zeichenfolge?
- 26. Zeichenfolge in Datum konvertieren Typ Python
- 27. Wie konvertiere ich eine Zeichenfolge in UTF-8 in Android?
- 28. Wie konvertiere ich eine Zeichenfolge in Titel Fall in Android?
- 29. Wie konvertiere ich eine Datetime mit Millisekunden in eine Zeichenfolge in C#?
- 30. Format ein Datum Zeichenfolge in PHP
Termine sind nicht einfach, schauen Sie sich nur die USA falsch an. Boost :: Date_Time mag groß aussehen, aber es ist nur ein kleiner erster Schritt. – MSalters