Czy strefa czasowa plików systemu Windows jest znana?

14

Mam plik, który został zmodyfikowany przed lub po wysłaniu do mnie.
Został on jednak utworzony w innej strefie czasowej, więc jeśli data modyfikacji znajduje się w strefie czasowej nadawcy, to on jako ostatni ją modyfikował. Jeśli jest w mojej strefie czasowej, I zmodyfikowane go.

Czy wiesz, czy daty modyfikacji plików systemu Windows uwzględniają strefę czasową?

bastibe
źródło

Odpowiedzi:

17

Strefa czasowa jest artefaktem konwersji z „chwil” na czytelną dla człowieka datę i godzinę w pewnym kalendarzu.

Komputery nie lubią formatów czytelnych dla człowieka (przynajmniej nie tak bardzo jak ludzi), dlatego zwykle przechowują instancje w formacie neutralnym dla strefy. Na przykład w systemie plików NTFS znaczniki czasu są przechowywane w UTC.

Dlatego modyfikacja czasu pliku jest przechowywana poprawnie, o ile ktokolwiek ją zmodyfikuje, zna aktualny czas. Jeśli twój system Windows wyświetla „13:19” i uważa, że ​​znajduje się w strefie czasowej GMT-5, oznacza to, że bieżąca chwila to „18:19” w UTC i zapisuje tyle samo we wnętrznościach NTFS. Jeśli jednak system operacyjny wyświetla „13:19”, ale uważa, że ​​znajduje się w strefie czasowej GMT + 3, oznacza to, że system operacyjny jest wyłączony o osiem godzin, nawet jeśli dla człowieka patrzącego na ekran wszystko wydaje się w porządku.

Inną kwestią jest to, że czas modyfikacji pliku jest właściwością systemu pamięci masowej, w którym plik jest przechowywany, np. Systemu plików. Kiedy plik jest „wysyłany”, czas ten niekoniecznie się z nim skraca. Niektóre formaty archiwów (np. Zip) osadzają czas modyfikacji pliku wraz z plikiem. Nie dotyczy to pliku wysłanego „w stanie, w jakim się znajduje”, załączonego do wiadomości e-mail, nie będzie zawierał czasu modyfikacji pliku.

Thomas Pornin
źródło
Został zredagowany, w formacie gpg i wysłany pocztą elektroniczną. Ponieważ znacznik czasu modyfikacji był wcześniejszy niż czas stworzenia, wydaje mi się, że przetrwał on poprawnie.
bastibe
5

Możesz zobaczyć kilka wskazówek w dokumentacji Microsoft dla FILETIME . Struktura nie przewiduje strefy czasowej, ale tekst stwierdza, że ​​NTFS przechowuje wszystkie czasy plików w UTC.

Mark Ransom
źródło
4

Znaczniki czasu systemu Windows rozpoznają strefę czasową. Jednak Twój mechanizm przesyłania plików może nie być.

David Pfeffer
źródło
To może być problem ... Dziękujemy za zwrócenie na to uwagi!
bastibe
3
Dla wyjaśnienia, nie ma rzeczywistego pola dla strefy czasowej, ale ponieważ wszystkie czasy są przechowywane w UTC, a następnie konwertowane na czas lokalny w locie w Explorerze, nie stanowi to problemu.
David Pfeffer
1
z punktu widzenia doświadczenia użytkownika pierwsze stwierdzenie wydaje się poprawne, ale z technicznego punktu widzenia jest całkowicie błędne. jednak twoje wyjaśnienie jest słuszne i naprawdę powinieneś edytować swoją odpowiedź, aby stwierdzić to bezpośrednio.
quack quixote
3

Jako uzupełnienie należy pamiętać, że chociaż modyfikacje plików z systemu plików NTFS lub innych systemów plików mogą uwzględniać strefę czasową, dane EXIF ​​(np. Data / godzina wykonania zdjęcia aparatem) mogą nie być przechowywane i nie mogą być przechowywane jako UTC może okazać się trudny do konwersji. To tylko myśl, na wypadek gdyby plik, który utworzył / zmodyfikował / datę / godzinę EXIF ​​nie zgadzał się.

Wydaje mi się, że pamiętam ulepszony system Windows 7 w stosunku do poprzednich wersji pod względem wyświetlania danych EXIF, tj. Konwertując go w locie do celów diapijnych do bieżącego czasu lokalnego, jeśli to możliwe.

AdamV
źródło
+1 EXIF ​​zazwyczaj przechowuje tylko czas lokalny i nie ma sposobu na wskazanie strefy czasowej :-(
sleske
2

Pamiętaj, że systemy plików FAT NIE rozpoznają stref czasowych, ale wpływa to tylko na ciebie, jeśli nosisz plik na urządzeniu z systemem plików FAT, który przecina strefy czasowe.

AnonF
źródło
Lub w czasie letnim.
Brendan Abel
To samo dotyczy plików w archiwach ZIP, ponieważ format dziedziczy formatowanie znaczników czasu FAT16 (dokładność 2 sekund i brak informacji o strefie czasowej).
rustyx