systemd 데몬과 Python의 시간이 잘못되었습니다.

systemd 데몬과 Python의 시간이 잘못되었습니다.

나는 systemd에 의해 시작된 데몬을 만들었고 내 데몬에는 시간을 얻는 Python 함수가 있습니다. 문제는 시간이 틀려 8시간의 시차가 난다는 점이다.

이것은 내 서비스 스크립트입니다.

[Unit]
Description=auto-sync daemon

[Service]
ExecStart=/bin/bash -c "/usr/bin/auto-sync -s"

[Install]
WantedBy=basic.target

나는 Python에서 시간을 얻는 여러 가지 방법을 시도했지만 모두 잘못되었습니다.

from datetime import datetime
datetime.now().strftime("%d-%m-%Y %H:%M:%S")

나는 문제가 스크립트를 실행하는 이상한 시스템 사용자일지도 모른다고 스스로에게 말하면서 다음과 같이 덧붙였습니다. User=root하지만 여전히 같은 문제가 발생합니다! 어떤 아이디어가 있나요?

내 프로그램의 모든 사용자가 동일한 문제를 겪고 있는지 확실하지 않기 때문에 실제로 +8시간을 추가하고 싶지 않습니다.

답변1

귀하의 시간대는 GMT와 8시간이 다른가요? datetime.now()에 대한 Python 호출이 현재 시간대를 사용하지 않고 대신 GMT 시간대의 시간을 반환하는 것 같습니다.

내부적으로 이 시간은 1970년 1월 1일 GMT 이후의 초 수를 포함하는 긴 정수입니다. 잘못된 시간대에서 실행되는 Python이 문제입니다. 당신은 그것을 사용할 수 있습니다피츠이 문제를 해결하려면 라이브러리를 참조하세요.이 답변.

관련 정보