Lesen derWikipedia-Artikel für HFS+, bemerkte ich, dass der zulässige Datumsbereich vom 1. Januar 1904 bis zum 6. Februar 2040 reicht. EbensoBereich für NTFSist 1. Januar 1601 – 28. Mai 60056. Meiner Meinung nach ist es lächerlich, darüber nachzudenken, da mir kein Fall einfällt, in dem eine Datei ein Änderungs-/Erstellungsdatum im 17. oder 20. Jahrhundert haben müsste. Ich kann die Unix-Zeitstempel-Epoche verstehen, da es vernünftig wäre, eine Datei in den 70ern, 80ern usw. erstellen/ändern zu lassen, aber es scheint einfach unlogisch, die Epoche dieser Zeitstempel so weit in die Vergangenheit zu legen.
Antwort1
Dies gilt nicht nur für NTFS. Die interne Zeitmessung von Windows erfolgt im selben Zeitformat und mit demselben Epochenstart.
Sie wussten, dass sie einen binären 64-Bit-Zeitwert wollten, da der ursprüngliche 32-Bit-Unix-Wert bereits als Sackgasse bekannt war (diese Zähler werden 2038 umgebrochen) und 64-Bit-Zeitwerte bereits in VMS verwendet wurden. 64 Bits ermöglichen die Berechnung von etwa 18 Milliarden Milliarden verschiedener Zeitwerte. Nun, eigentlich nur 9 Milliarden Milliarden, da Zeitwerte mit dem höchsten gesetzten Bit in Windows eine andere Bedeutung haben (wie in VMS). Wir haben also tatsächlich „nur“ 63 Bits zum Zählen von Datum und Uhrzeit.
Während die 32-Bit-Unix-Zeit nur Sekunden zählte, rechnen Windows-Zeitstempel in Schritten von 100 Nanosekunden. Ein Zeitwert von 1 bedeutet also 100 ns nach Mitternacht am 1. Januar 1601.
Aber warum wurde ein solch „historisches“ Datum gewählt?
Nun, erstens macht es Wochentagsberechnungen und ähnliche Berechnungen etwas einfacher, da dies das erste Jahr des frühesten 400-Jahres-Zyklus war, in dem elektronische Computer jeglicher Art verwendet wurden. Es gibt einigesehr kompetente Unterstützungaus diesem Grund.
Ich bin jedoch der Meinung, dass die zusätzliche Rechenleistung, die erforderlich wäre, um ein anderes Startjahr zu bewältigen, im Kontext moderner Computertechnik ziemlich gering wäre.
Der 1. Januar 1601 ist zufällig auch das Datum, ab dem ANSI-Daten gezählt werden. Das „Windows-Datum“ ist also dieselbe Tagesnummer wie das „ANSI-Datum“, was die Dinge an verschiedenen Stellen etwas einfacher macht.
Es wurde auch als „Jahr 1“ des Gregorianischen Kalenders standardisiert (obwohl dieser Kalender damals nicht überall übernommen wurde).
Aus praktischen, arbeitsbezogenen Gründen sollten Sie jedoch Folgendes bedenken: Dieses Datums-/Zeitformat ermöglicht es, historische Daten/Zeiten in Datenbanken direkt neben aktuellen darzustellen, und zwar im gleichen Format. Eine genealogische Datenbank kann so beispielsweise die Geburts- und Sterbedaten Ihrer Vorfahren über 400 Jahre zurück speichern, was weit über die Zeitspanne hinausgeht, die die meisten dieser Aufzeichnungen in zuverlässiger Form haben.
Es hätte keinen Sinn gehabt, dies früher zu verlängern, beispielsweise ab dem Jahr 1201 oder sogar 1, da in einigen Ländern die Umstellung vom julianischen zum gregorianischen Kalender 1582 begann und je nach Land bis 1926 andauerte. Bei allen im ANSI-Zeitformat und darüber hinaus im „binären“ Zeitformat von Windows aufgezeichneten Daten wird davon ausgegangen, dass sie dem gregorianischen Kalender entsprechen.
Übrigens verwendet VMS ein ähnliches Schema, aber seine Basiszeit ist der 17. November 1858. Dies war ein Standard, den das Smithsonian Astrophysical Observatory als „Basisdatum“ für die Satellitenverfolgung gewählt hatte; dies hing mit der früheren Verwendung des ursprünglichen Julian Day-Schemas durch Astronomen zusammen, das die Tage seit Mittag, 1. Januar 4713 v. Chr. zählt. Bei diesem Schema ergibt der 17. November 1858 den modifizierten Julian Day Nummer 2.400.000. Durch die Verwendung des MJD anstelle des JD konnten sie zeitgenössische Daten in nur 18 Bits unterbringen, was zu dieser Zeit eine wichtige Leistung war. SieheDieser ArtikelWeitere Einzelheiten erhalten Sie von VMS Engineering.
Antwort2
Bei isolierter Betrachtung mag der große Zeitstempelbereich von NTFS unlogisch erscheinen. Aber wenn man das Gesamtbild betrachtet, ist er völlig logisch.
Ein Betriebssystem bietet unter anderem eine Reihe von Funktionen, die die meisten Programme benötigen. So können sich Programmierer auf ihre Programme konzentrieren, statt Zeit damit zu verschwenden, diese allgemeinen Funktionen für jedes Programm neu zu schreiben. Jedes Betriebssystem, das diese Funktionen nicht bietet, wird wahrscheinlich nicht erfolgreich sein. Windows und Linux bieten Hunderte solcher Funktionen.
Windows enthält eine Reihe von Funktionen zum Darstellen und Arbeiten mit Datums- und Uhrzeitangaben. Um eine maximale Nützlichkeit zu erreichen, werden damit so viele Datumsbereiche wie möglich abgedeckt. Viele Programme verwenden diese Funktionen für die unterschiedlichsten Zwecke.
Das NTFS-Dateisystem wurde als Teil der NT-Plattform veröffentlicht. Wie jedes moderne Dateisystem benötigte es eine Möglichkeit, Dateidatumsstempel zu speichern. Logischerweise entschieden sich die Entwickler, dasselbe System zu verwenden, das auch für Anwendungen bereitgestellt wurde. Dies macht die Dinge für Entwickler einfacher. Natürlich ist der Datumsbereich viel breiter als für Datumsstempel erforderlich, aber es kostet nichts und verursacht keine Probleme. Die Verwendung eines anderen Systems mit einem eingeschränkteren Datumsbereich für Datumsstempel wäre unlogisch gewesen.
Antwort3
Daten (und ihre Formatspezifikation auf Bit-Ebene) werden nicht nur zur Beschriftung von Dateien verwendet, sondern auch für Berechnungen und an vielen anderen Stellen. Ein Historiker möchte beispielsweise Daten aus dem 17. oder 18. Jahrhundert in seinen Excel-Spalten haben; oder ein Astronom möchte Planetenkonstellationen in diesen Zeiträumen berechnen.
Auch wenn nur wenige Menschen davon profitieren, ist der Verlust vernachlässigbar. Es spielt keine große Rolle, ob Sie dieses Format 100 oder 5.000 oder 60.000 Jahre lang verwenden können. Die nächsten 50 Jahre wird es wahrscheinlich nicht überstehen.