Konvertierung UNIX Datumsformat in System.DateTime

Ulrich Michalik

Grünschnabel
Ich bekomme aus einer Datei ein UNIX Datumsformat. das heist die Sekunden von January 1, 1970
Gibt es fertige Funktionalitäten in C# bzw. DOTNET um dieses Format in das System.DateTime Format zu konvertieren und umgekehrt ?
 
Original geschrieben von turndevil
hallo.

müsste gehen mit:

Code:
DateTime dt = new DateTime(<Anzahl Millisekunden (long)>);


hab hier geschaut:
http://msdn.microsoft.com/library/d...ef/html/frlrfSystemDateTimeClassctorTopic.asp

Hi,

tut es nicht. :)
Der Wert, welcher hier im Konstruktor übergeben wird, ist kein UNIX-TimeStamp.
Dieser Wert gibt die Zeit in Nanosekunden an, von welchem Datum weiss ich nun allerdings nicht.

Code:
using System;

public class MyClass
{
	public static void Main()
	{

		DateTime now = DateTime.Now;
		TimeSpan timespan = now.Subtract(new DateTime(1970,1,1));	
		long timestamp = (long) timespan.TotalSeconds;
			
		Console.WriteLine("TimeStamp: " + timestamp);
		Console.WriteLine("Ticks: " + now.Ticks);
		
		DateTime dt1 = new DateTime(timestamp);
		Console.WriteLine("DT1: "  + dt1.ToShortDateString() + " - " + dt1.ToLongTimeString());
		
		DateTime dtt = new DateTime(1970,1,1);
		DateTime dt2 = dtt.AddSeconds(timestamp);
		Console.WriteLine("DT2: "  + dt2.ToShortDateString() + " - " + dt2.ToLongTimeString());
		
		Console.Read();
	}
	
}

Das einzige was es hierbei noch zu beachten gäbe ist die Zeitzone!

MfG,
Alex
 
Problem gelöst, Danke für Eure Hilfe

Ich bin den, umständlichen aber für mich am einfachsten Weg gegangen

Ich habe einfach eine MFC DLL erstellt in der ich die C++ Standard Bibliothek benutzen kann.

habe die entsprechenden Funktionen eingesetzt und Library Funktionen exportiert
welche ich dann in einer NET.dll mit DLLImport wieder reinhole.

Ist nicht ganz elegant aber funktioniert.
 
Hi,

tut es nicht.
Der Wert, welcher hier im Konstruktor übergeben wird, ist kein UNIX-TimeStamp.
Dieser Wert gibt die Zeit in Nanosekunden an, von welchem Datum weiss ich nun allerdings nicht.

NARF stimmt. Da steht "in ticks" auf der MSDN page. Sorry hab ich übersehen. Naja und was UNIX betrifft bin ich eh net so der Hit. Aber ein Versuch wars Wert. =)

mfg
tom
 
Zurück