Python zaman modülündeki time.time()
sistem zamanını mı yoksa UTC'deki zamanı mı döndürür?
time.time()`]1 işlevi, çağdan bu yana geçen saniye sayısını saniye olarak döndürür. Çağ"ın UTC'de 1 Ocak 1970'in başlangıcı olarak tanımlandığına dikkat edin. Dolayısıyla, dönem UTC açısından tanımlanır ve zamanda küresel bir an oluşturur. Nerede olursanız olun "seconds past epoch" (time.time()) aynı anda aynı değeri döndürür.
İşte bilgisayarımda çalıştırdığım ve bir dizeye dönüştürdüğüm bazı örnek çıktılar.
Python 2.7.3 (default, Apr 24 2012, 00:00:54)
[GCC 4.7.0 20120414 (prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> ts = time.time()
>>> print ts
1355563265.81
>>> import datetime
>>> st = datetime.datetime.fromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S')
>>> print st
2012-12-15 01:21:05
>>>
tsdeğişkeni saniye cinsinden döndürülen zamandır. Daha sonra
datetime` kütüphanesini kullanarak bunu bir dizeye dönüştürdüm ve insan tarafından okunabilir bir dize haline getirdim.
Bu, metin dosyalarınızda kullanılabilecek zaman damgasının metin biçimi içindir. (Sorunun başlığı geçmişte farklıydı, bu nedenle bu yanıtın girişi, zaman olarak nasıl yorumlanabileceğini açıklığa kavuşturmak için değiştirildi. [güncellendi 2016-01-14])
Zaman damgasını datetime.datetime
öğesinin .now()
veya .utcnow()
öğesini kullanarak bir dize olarak alabilirsiniz:
>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000
Şimdi' beklendiği gibi `utcnow'dan farklıdır - aksi takdirde aynı şekilde çalışırlar:
>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000
Zaman damgasını açıkça dizeye dönüştürebilirsiniz:
>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'
Ya da zaman damgasını istediğiniz şekilde biçimlendirmek için daha da açık olabilirsiniz:
>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'
ISO formatını istiyorsanız, nesnenin .isoformat()
yöntemini kullanın:
>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'
Bunları hesaplamalar için değişkenlerde kullanabilir ve dönüştürme yapmadan yazdırabilirsiniz.
>>> ts = datetime.datetime.now()
>>> tf = datetime.datetime.now()
>>> te = tf - ts
>>> print ts
2015-04-21 12:02:19.209915
>>> print tf
2015-04-21 12:02:30.449895
>>> print te
0:00:11.239980
Quiguy'dan gelen cevaba göre, gerçek bir zaman damgası elde etmek için float'tan döküm yazardım.
>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318
En azından konsept bu.