LibreOffice Calc에서 에포크 시간을 사람이 읽을 수 있는 시간으로 변환

LibreOffice Calc에서 에포크 시간을 사람이 읽을 수 있는 시간으로 변환

H2값이 1517335200000. 인 셀에 신기원 시간이 있습니다 . 30/01/2018 6:00:00 PMGMT로 반환되어야 하는 사람이 읽을 수 있는 형식으로 변환하려고 합니다 .

H2/86400+25569OpenOffice 포럼에서 얻은 공식을 사용하여 변환을 시도했습니다 . 이 수식은 값을 반환합니다 17587319. LibreOffice Calc에서 숫자 형식을 변경하면 Date값이 반환됩니다 06/09/-15484. 이것은 내가 원하는 가치가 아니다. 그렇다면 dd/mm/yyyy hh:mm:ss 형식의 값을 얻는 방법은 무엇입니까?

답변1

H2변환할 숫자가 포함된 경우 ( 1517335200000).

  1. H3포함된 수식을 만듭니다 .

    = H2/1000/(60*60*24) + 25569

    그러면 숫자 43130.75가 반환됩니다.

  2. 셀 형식을 H3날짜로 변경합니다. 누구나:

    • 에 따르면 Shift- -Ctrl3
    • 선택하다체재-->숫자 형식-->날짜
    • 선택하다체재-->(창을 엽니다) -->숫자-날짜-체재
  3. 셀 형식을 H3원하는 날짜 형식으로 변경합니다.

    • 선택하다체재-->(패널 열기) -->숫자-날짜-형식(하나 선택)
  4. 원하는 서식을 표시할 만큼 너비가 충분하지 않은 경우 셀 너비를 확장하세요(팁: 세 개의 # 표시가 나타남).


왜:

에포크 시간은 1970년 1월 1일 이후 초 단위로 측정됩니다.
1899년 12월 30일 이후의 내부 시간(일)을 계산합니다.
따라서 H3에서 올바른 결과를 얻으려면 다음을 수행하십시오.

  1. 올바른 숫자를 구하세요(마지막 공식):

    H3 = H2/(60*60*24) + ( Difference to 1/1/1970 since 12/30/1899 in days )
    H3 = H2/86400      + ( DATE (1970,1,1) - DATE(1899,12,30) )
    H3 = H2/86400      +   25569
    

    하지만 귀하가 제공한 에포크 값이 너무 큽니다. 원래보다 3개의 0이 더 큽니다. 1517335200000 대신 1517335200이어야 합니다. 밀리초 단위로 제공되는 것 같습니다. 그러니까 1000으로 나누세요. 이 변경 후 수식은 다음과 같습니다.

    H3 = H2/1000/86400+25569  =  43130.75
    
  2. H3날짜 및 시간의 형식을 변경하면(형식-->셀-->번호-->날짜-->날짜 및 시간) 다음과 같이 표시됩니다.

    01/30/2018 18:00:00
    

    H3에서.


물론 Unix epoch 시간은 항상 UTC(+0 자오선)를 기준으로 하기 때문에 위의 결과는 현지 시간대가 UTC에서 벗어난 시간만큼 이동해야 합니다. 따라서 현지 시간을 얻으려면 시간대가 태평양 표준시 GMT-8인 경우 (-8)시간을 추가해야 합니다. H3 및 H4의 현지 시간대(-8)에 대한 공식은 다음과 같습니다.

H3 = H2/1000/86400 + 25569 + H4/24 = 43130.416666

다음과 같이 렌더링됩니다.

01/30/2018 10:00:00

H3의 형식이 이러한 시간 형식으로 설정된 경우.

답변2

미래에 누군가가 이런 상황에 직면할 경우를 대비해. 위의 내용에는 아무런 문제가 없습니다. 단지 제가 잘 이해하지 못했기 때문에 다른 사람들에게 도움이 되기를 바라면서 다른 방식으로 설명하겠습니다.

타이어;

공식은

=UnixTime/86400 + 25569
=H2/86400 + 25569

libreoffice 이후 날짜가 부동 소수점 일수로 표시되는 것 같습니다.연대1초도 안 남았습니다 DATE(1899,12,30).

1970년 이후의 정수 초 수인 Unix 시대를 부동 소수점 일수로 변환하려면 하루의 초 수 또는 86400으로 나눕니다.

변환을 수행하십시오.

libreoffice datetime = (UnixEpoch / (Seconds in a day 86400)) + the number of days (not seconds) between the epochs.

그 과정에서 획득한 가치를 보여주는 작품 예시1675781528 unix epoch (2023-02-07T14:52:08)

1675781528 / 86400 = 19395.619537037 days since 1970

(DATE(1970,1,1) - DATE(1899,12,30)) = 25569 days between 1890 and 1970

25569 + 19395.619537037 = 44964.62 days since 1899

관련 정보