İki bölüm vardır:
- Unix zaman damgasını ("dönemin ardından saniye") yerel saate dönüştürün
- Yerel saati istediğiniz formatta görüntüleyin.
Yerel saat dilimi geçmişte farklı bir utc ofseti olsa ve python'un tz veritabanına erişimi olmasa bile çalışan yerel saati almanın taşınabilir bir yolu bir pytz
saat dilimi kullanmaktır :
#!/usr/bin/env python
from datetime import datetime
import tzlocal # $ pip install tzlocal
unix_timestamp = float("1284101485")
local_timezone = tzlocal.get_localzone() # get pytz timezone
local_time = datetime.fromtimestamp(unix_timestamp, local_timezone)
Görüntülemek için sisteminiz tarafından desteklenen herhangi bir saat biçimini kullanabilirsiniz, örneğin:
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))
print(local_time.strftime("%B %d %Y")) # print date in your format
Yerel bir saate ihtiyacınız yoksa, okunabilir bir UTC saati almak için:
utc_time = datetime.utcfromtimestamp(unix_timestamp)
print(utc_time.strftime("%Y-%m-%d %H:%M:%S.%f+00:00 (UTC)"))
Hangi tarihin döndürüleceğini etkileyebilecek saat dilimi sorunlarıyla ilgilenmiyorsanız veya python'un sisteminizdeki tz veritabanına erişimi varsa:
local_time = datetime.fromtimestamp(unix_timestamp)
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f"))
Python 3'te, yalnızca stdlib kullanarak saat dilimi kullanan bir tarih saati alabilirsiniz (python'un sisteminizdeki tz veritabanına (örneğin Windows'ta) erişimi yoksa UTC ofseti yanlış olabilir):
#!/usr/bin/env python3
from datetime import datetime, timezone
utc_time = datetime.fromtimestamp(unix_timestamp, timezone.utc)
local_time = utc_time.astimezone()
print(local_time.strftime("%Y-%m-%d %H:%M:%S.%f%z (%Z)"))
time
Modülün işlevleri , karşılık gelen C API'sinin etrafındaki ince sargılardır ve bu nedenle ilgili datetime
yöntemlerden daha az taşınabilir olabilirler, aksi takdirde bunları da kullanabilirsiniz:
#!/usr/bin/env python
import time
unix_timestamp = int("1284101485")
utc_time = time.gmtime(unix_timestamp)
local_time = time.localtime(unix_timestamp)
print(time.strftime("%Y-%m-%d %H:%M:%S", local_time))
print(time.strftime("%Y-%m-%d %H:%M:%S+00:00 (UTC)", utc_time))