Python에서 'strftime' 메서드는 일반적으로 datetime 객체를 특정 날짜 및 시간 형식을 나타내는 문자열입니다. 그러나 '%s'를 사용하여 에포크 시간으로 변환할 때 잠재적인 시간대 불일치를 인식하는 것이 중요합니다.
관찰한 것처럼 날짜/시간 객체에 'strftime('%s')'를 사용하면 다음과 같은 결과가 발생합니다. UTC 기준 실제 epoch 시간과 1시간 차이가 나는 값입니다. 이는 'strftime'이 기본적으로 시스템의 현지 시간대를 사용하므로 UTC와의 오프셋이 발생할 수 있기 때문입니다.
이 시간대 문제를 극복하려면 ' timestamp()' 메서드는 Python 3.3에서 도입되었습니다. 'timestamp()'는 시스템 시간대에 관계없이 에포크 시간을 초 단위로 직접 반환합니다.
>>> datetime.datetime(2012, 4, 1, 0, 0).timestamp() 1333234800.0
Python 3.3 이전 버전의 경우 에포크 시간을 수동으로 계산할 수 있습니다.
>>> (datetime.datetime(2012, 4, 1, 0, 0) - datetime.datetime(1970, 1, 1)).total_seconds() 1333238400.0
중요합니다 Python은 본질적으로 이 형식을 지원하지 않으므로 epoch 변환에 'strftime('%s')'을 사용하지 마십시오. 그 기능은 시스템의 'strftime' 구현에 입력을 전달하는 데 달려 있는데, 이는 현지 시간대를 사용하고 오류가 발생할 수 있습니다.
결론적으로, Python 3.3에서 'timestamp()' 메서드를 사용하는 것이 좋습니다. UTC로 정확한 에포크 시간 변환을 얻기 위해 이전 버전에 대한 수동 계산. 이 관행을 준수하면 시스템의 시간대 구성에 관계없이 일관되고 안정적인 결과를 보장할 수 있습니다.
위 내용은 Python에서 `strftime(\'%s\')`가 부정확한 에포크 시간을 생성하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!