Was ist der Unterschied zwischen DateTime und DateTimeOffset!? Und warum kennen die meisten diesen Unterschied gar nicht!?

2 Antworten

Du hättest auch einfach mich unter deiner anderen Frage fragen können...

Beides sind Datentypen vom .NET-Framework, mit Office hat das auf den ersten Blick nichts zu tun.

https://learn.microsoft.com/de-de/dotnet/api/system.datetimeoffset?view=net-8.0

https://learn.microsoft.com/de-de/dotnet/api/system.datetime?view=net-8.0

Die DateTimeOffset Struktur enthält einen DateTime Wert zusammen mit einer Offset Eigenschaft, die den Unterschied zwischen Datum und Uhrzeit der aktuellen DateTimeOffset Instanz und koordinierter Weltzeit (UTC) definiert.

Man kann auch mit DateTime UTC-Zeit nutzen, muss aber überall darauf achten.
Wenn man nun hier in Deutschland ein DateTime (nicht DateTimeOffset) in die Datenbank speichert und dann irgendwo in Australien anzeigt oder damit rechnet, ist das ein potentieller Fehler.

Das wissen viele nicht oder ignorieren es einfach, aus den verschiedensten Gründen. Faulheit (sich weiterzubilden), mangelndes Interesse, Ignoranz, "Das hat schon immer so funktioniert"-Syndrom, etc.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

GutenTag2003  04.10.2024, 16:11
Faulheit (sich weiterzubilden), mangelndes Interesse, Ignoranz, 

Das ist nun wirklich keine zutreffende Aussage außer ...

... kein Interesse,

... weil kein Bedarf besteht.

Palladin007  04.10.2024, 16:34
@GutenTag2003

Warum keine zutreffende Aussage? Hab ich alles schon gesehen.

Und "kein Bedarf" ist kein Grund, es nicht zu nutzen, außer man hat bereits eine große Codebasis, die man erst umstellen müsste.

GutenTag2003  04.10.2024, 16:43
@Palladin007
Warum keine zutreffende Aussage?

Das ...

Faulheit (sich weiterzubilden), mangelndes Interesse, Ignoranz,

... sind schon recht arrogante Aussagen. Genau so könntest Du sagen, wer sich nicht z.B. mit Raumfahrttechnik beschäftigt für den ist es

Faulheit (sich weiterzubilden), mangelndes Interesse, Ignoranz,

Welcher Mensch beschäftigt sich schon dem gesamten Wissen der Menschheit ohne nach Deiner Aussage nicht von...

Faulheit (sich weiterzubilden), mangelndes Interesse, Ignoranz,

... geprägt zu sein.

Ich gehe davon aus, dass für Dich

Faulheit (sich weiterzubilden), mangelndes Interesse, Ignoranz,

... ebenso zuträfe.

Palladin007  04.10.2024, 16:49
@GutenTag2003

Das beides sind sehr grundlegende Datentypen im .NET Framework.
Die ursprüngliche Frage vor dieser Frage bezog sich auf Software und warum viele Programme falsch mit "Datümern" rechnen.
Meine Aussage bezog sich auf Softwareentwickler.

Wer mit .NET arbeitet, sollte den Unterschied zwischen DateTime und DateTimeOffset zumindest grundlegend kennen oder einfach pauschal DateTimeOffset verwenden.

GutenTag2003  04.10.2024, 16:51
@Palladin007
Meine Aussage bezog sich auf Softwareentwickler.

Das ist aus Deiner Antwort nicht abzuleiten. Ich bin auch nicht sicher, dass diese Behauptung

 Und warum kennen die meisten diesen Unterschied gar nicht!?

... zutrifft.

Palladin007  04.10.2024, 17:17
@GutenTag2003
Ich bin auch nicht sicher, dass diese Behauptung [...] zutrifft

Ich weiß nicht, ob es wirklich "die meisten" sind, aber in meiner beruflichen "Bubble" trifft das zu. Ggf. haben andere Kollegen andere Erfahrungen gemacht, aber ich würde zumindest behaupten: Es sind viele, die das nicht wissen oder es zumindest ignorieren.

MarSusMar  04.10.2024, 16:07
Du hättest auch einfach mich unter deiner anderen Frage fragen können...

Das kapiert sie nicht

Palladin007  04.10.2024, 16:36
@MarSusMar

Ich bin mir erhlich gesagt auch nicht sicher, was die Frage überhaupt soll.

Ok, das unter der anderen Frage anzuschneiden war ggf. zu viel, aber warum war es nötig, die Aussage 1zu1 zu kopieren und ein "Warum" davor zu hängen?

Und warum kennen die meisten diesen Unterschied gar nicht!?

Möglicherweise weil es für sie weniger erforderlich ergo nicht von Bedeutung ist.

Aber ...

... warum erklärst Du den Unterschied denn nicht?