Dies ist für mich immer ein Rätsel - und mir ist klar, dass es sich nicht ausschließlich um ein Problem bei der Programmierung oder Softwareentwicklung handelt, aber es scheint in unserem Bereich ein vernünftiges Problem zu sein.
Wenn ich beispielsweise ein Ablaufdatum als 2011-04-08 00:00:00 festlegen würde - und meine aktuelle Ortszeit bereits am 8. um 10:45 Uhr ist - bin ich bereits abgelaufen? Oder habe ich noch einen halben Tag oder so?
Gibt es einen universellen Standard, zu dem das Ende des Tages Mitternacht gehört?
Oder sollte ich dem britischen Militär ein Blatt abnehmen und sagen, dass der Tag um 23:59:59 endet und um 00:00:01 beginnt und dass es keine Mitternacht gibt?
language-agnostic
time
HorusKol
quelle
quelle
24:00:00
wird Mitternacht am Ende des Tages beschrieben.Antworten:
Ich denke, beim Programmieren (Orakel und PHP, nicht sicher, ob es sich um andere Sprachen handelt) ist Mitternacht der Beginn eines Tages. Wenn Sie beispielsweise abschneiden (sysdate), erhalten Sie 2011-04-08 00:00:00, was unsere Vergangenheit ist.
Wenn sich die Uhr von 23:59:59 auf 00:00:00 änderte, änderte sich das Datum tatsächlich von 2011-04-08 auf 2011-04-09
quelle
Ein Nachtrag zu @Phelios 'Antwort: Wenn Sie eine Zeit wie 00:00:00 haben, ist dies nicht unbedingt genau Mitternacht. Vielmehr handelt es sich um eine unendlich große Menge von Zeitpunkten, die alle einen maximalen Abstand von <1 Sekunde zueinander haben. Beispielsweise liegen alle 00: 00: 00.345, 00: 00: 00.567 und 00: 00: 00.842 eindeutig auf der Neujahrsseite von Mitternacht, würden jedoch zu Anzeigezwecken auf "00:00:00" gekürzt. Ebenso liegt 23: 59: 59: 899 auf der alten Seite von Mitternacht. Mitternacht selbst ist also eine unendlich kurze Zeitspanne zwischen den Tagen, die Sie in der Praxis niemals treffen werden.
quelle
Dies ist ein ähnliches Problem wie bei der Berechnung von Winkeldifferenzen unter Verwendung einer Kreisgeometrie, bei der beispielsweise 0 Grad und 360 Grad (und 720 Grad usw.) alle gleich sind. Was ist der Unterschied zwischen 350 und 10 Grad?
Antwort: Es hängt davon ab, in welcher Richtung Sie es messen möchten - es kann 20 Grad oder 340 Grad sein. Die Berechnung der Winkeldifferenzen ist jedoch ziemlich chaotisch. Zeitdifferenzberechnungen sind ähnlich unübersichtlich, es sei denn, Sie konvertieren in eine interne Form, bei der die einfache Addition und Subtraktion konventionell funktioniert. Oder Sie verwenden eine moderne Klassenbibliothek, die alles auf magische Weise vor Ihnen verbirgt (und somit niemals jemandem die tatsächlichen Details beibringt).
quelle