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ę?

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

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.

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)


1

W Arkuszach Google

A1 -> komórka z datownikiem * nix

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



Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.