Konvertierung von 'System::Int64 ^" in '__int64' nicht möglich
-
Hallo alle zusammen,
ich arbeite mich momentan in die Welt der CLI / Windows Forms Programmierung ein. Nun habe ich folgendes Problem:
Ich möchte einen Unix Timestamp aus einer Textdatei einlesen, diesen in ein DateTime umwandeln und beides in einer Textbox ausgeben. Leider bekomme ich folgende Fehlermeldung des Compilers:
Fehler 2 error C2664: 'Test::Form1::UnixTimestampToDateTime': Konvertierung des Parameters 1 von 'System::Int64 ^' in '__int64' nicht möglich Form1.h 19
Wo liegt mein Fehler?
Der folgende Code ist unvollständig, sollte jedoch aussreichen:
using namespace System; using namespace System::IO FileStream ^fs; StreamReader ^sr; Int64 ^Zeitstempel; DateTime ^DatumZeit; String ^zeile = ""; fs = nullptr; sr = nullptr; fs = gcnew FileStream(dateiname, FileMode::Open); sr = gcnew StreamReader(fs); zeile = sr->ReadLine(); Zeitstempel = Convert::ToInt64(zeile); DatumZeit = UnixTimestampToDateTime(Zeitstempel); Zeitstempel->Text = Convert::ToString(Zeitstempel); DatumZeit>Text = Convert::ToString(DatumZeit); DateTime UnixTimestampToDateTime(Int64 _UnixTimeStamp) { return (DateTime(1970, 1, 1, 0, 0, 0)).AddSeconds(_UnixTimeStamp); }
Vielen Dank für Eure Hilfe
Gruß BeginnerX
-
ev:
Int64 ^Zeitstempel in
Int64 Zeitstempelumwandeln?
Klaus
-
So bekommst Du aber die Warnung "Datenverlust" von Int64 in double.
Also lieber so...
FileStream ^fs; StreamReader ^sr; double Zeitstempel; DateTime^ DatumZeit; String^ zeile = ""; fs = nullptr; sr = nullptr; fs = gcnew FileStream(dateiname, FileMode::Open); sr = gcnew StreamReader(fs); zeile = sr->ReadLine(); Zeitstempel = Convert::ToDouble(zeile); DatumZeit = UnixTimestampToDateTime(Zeitstempel); Zeitstempel = Convert::ToString(Zeitstempel); DatumZeit = Convert::ToString(DatumZeit); DateTime UnixTimestampToDateTime(double _UnixTimeStamp) { return (DateTime(1970, 1, 1, 0, 0, 0)).AddSeconds(_UnixTimeStamp); }
Gruß,
Renke
-
Hi Klaus,
kleine Änderung große Wirkung, habe mich aufgrund des möglichen Datenverlustes für Renke's Lösung entschieden.
Danke euch beiden für die schnelle Antwort.
Gruß Manuel