Normal unix süresi arasında ileri ve geri dönüşüm sağlayan bir çift işlev, dt
ve ut
yazmayı deniyorum 1970-01-01 00:00:00 UTC) ve bir Python datetime nesnesi. dt
ve ut
uygun inversleri idiBir unttime nesnesini bir datetime nesnesine dönüştürün ve tekrar (eşleştirilen zaman dönüştürme işlevleri çifti)
o zaman bu kodun iki kez aynı zaman damgası basmak olacaktır:
import time, datetime
# Convert a unix time u to a datetime object d, and vice versa
def dt(u): return datetime.datetime.fromtimestamp(u)
def ut(d): return time.mktime(d.timetuple())
u = 1004260000
print u, "-->", ut(dt(u))
Ne yazık ki, ikinci zaman damgası ilkinden daha az 3600'dür (bir saat) 'dir. Bence bu sadece çok özel unixtimes için olur, belki o saatlerde o gün ışığından yararlanma saati atlar. Ama dt
ve ut
yazmanın bir yolu var, bu yüzden birbirlerinin gerçek tersleri mi?
İlgili soru: Making matplotlib's date2num and num2date perfect inverses
btw fonksiyon şey yapmaz ancak başka işlevi ile çağırırsa, Bu
fromtimestamp()
kullanırken geri yaz saati rulo sırasında düşmek kez almak için ne çoklu farklı zaman damgaları, aynıdatetime.datetime
nesneye harita anlamına gelir Aynı argümanlar sonra atayabilirsiniz: 'dt = datetime.datetime.utcfromtimestamp'. İşlevler Python'da birinci sınıf vatandaşlardır: bunları başka bir işleve parametre olarak geçirebilir, işlevlerden dönebilirsiniz. – jfsAh, güzel, harika nokta! Bunu yapmak daha mı yoksa özlü bir mesele mi? Peki ya f (x) 'ye ne dersiniz: foo (x) 'vs' f = lambda x: foo (x) '? (Benim hatırlamam, bunların hem işlevsel hem de verimlilik açısından eşdeğerdir.) – dreeves
'f = g', f, g'nin aynı işleve karşılık gelen iki ad olduğu anlamına gelir. "def" ve "lambda" yeni işlevler yaratır. – jfs