Jak przekonwertować uniksowy znacznik czasu na czytelny dla człowieka?

15

Jak mówi tytuł, mam uniksowe znaczniki czasu na arkuszu i muszę przekonwertować je na normalne daty czytelne dla ludzi. Jak dotąd rzucam się w oczy, wyszukiwania Google przyniosły kilka sugestii, ale żadna z nich nie zadziałała. Czy ktoś ma formułę, która działa na ich konwersję?

JVC
źródło

Odpowiedzi:

24

Wolę formułę, która jest bardziej przejrzysta, z mniejszą liczbą magicznych liczb. Ułatwia to zobaczenie, co się dzieje, a także pozwala uniknąć prawdopodobieństwa wystąpienia błędu (np. Aktualna najwyższa odpowiedź na to pytanie, która jest wyłączona do 1 dnia):

=A1/60/60/24 + DATE(1970,1,1)

A jeśli chcesz zmienić go z UTC na znacznik czasu, który jest przesunięty o pewną liczbę godzin, na przykład UTC-8:

=A1/60/60/24 + DATE(1970,1,1) - 8/24

Zauważ, że jeśli twój uniksowy znacznik czasu jest wyrażony w milisekundach, musisz najpierw podzielić przez 1000, tj .:

=A1/1000/60/60/24 + DATE(1970,1,1) - 8/24
Dave L.
źródło
Bardzo fajnie, myślę, że to jest rzeczywiście lepsza odpowiedź, więc zamierzam ją pominąć… Dzięki!
JVC
Tak, to chyba nie działa dla mnie, daje dziwną datę. Masz pomysł, dlaczego?
JayPex
@JayPex Nie wiem, ale może podałbyś więcej szczegółów. Jedną rzeczą do sprawdzenia byłby format tej komórki.
Dave L.
8

Arkusze Google mierzą datę i godzinę w dniach, przy czym 0 to 1899-12-30 0:00:00. Jest to przed 1970 rokiem, uniksowy znacznik czasu dla tego momentu (przy założeniu czasu GMT) jest ujemny, a mianowicie -2209161600. Tak więc formuła

=(A1 + 2209161600)/86400

przekonwertuje uniksowy znacznik czasu w komórce A1 na datę i godzinę (sformatuj komórkę za pomocą formuły jako takiej).

Ograniczenia:

  • Sekundy przestępcze są ignorowane
  • Formuła dotyczy GMT, a czas Arkuszy Google jest określony w lokalnej strefie czasowej. Aby dostosować formułę do swojej strefy czasowej, odwiedź https://www.epochconverter.com/ i uzyskaj znacznik czasu 1899-12-30 0:00:00 w swoim czasie lokalnym.

źródło
Jak wynika z mbikańskich notatek, ta formuła jest wyłączona o 1 dzień. xkcd.com/386
Dave L.
Odpowiedź jest już naprawiona.
Dave L.,
3

Wynik był dla mnie jeden dzień, więc zmieniłem go na =to_date((A1+2209161600)/86400)

meksykanin
źródło
1

W Arkuszach Google

A1 -> komórka z datownikiem * nix

Formuła daty =(((A1/60)/60)/24)+DATE(1970;1;1)

biojazzard
źródło
0

A1 / 60/60/24 + DATA (1970,1,1) prawda?

Vondes
źródło