Returnerer time.time()
i Python-tidsmodulen systemets tid eller tiden i UTC?
Funksjonen time.time()
returnerer antall sekunder siden epoken, i sekunder. Legg merke til at "epoken" er definert som starten på 1. januar 1970 i UTC. Epoke er altså definert i UTC og etablerer et globalt tidspunkt. Uansett hvor du befinner deg "sekunder etter epoken" (time.time()) returnerer samme verdi på samme tidspunkt.
Her er noen eksempler på utdata jeg kjørte på datamaskinen min, og konverterte den også til en streng.
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
>>>
Variabelen ts
er tiden som returneres i sekunder. Jeg konverterte den deretter til en streng ved hjelp av datetime
-biblioteket, noe som gjør den til en streng som er lesbar for mennesker.
Dette gjelder tekstformen av et tidsstempel som kan brukes i tekstfilene dine. (Tittelen på spørsmålet var annerledes tidligere, så innledningen til dette svaret ble endret for å klargjøre hvordan det kan tolkes som klokkeslett. [oppdatert 2016-01-14])
Du kan få tidsstempelet som en streng ved å bruke .now()
eller .utcnow()
i datetime.datetime
:
>>> import datetime
>>> print datetime.datetime.utcnow()
2012-12-15 10:14:51.898000
now
skiller seg fra utcnow
som forventet - ellers fungerer de på samme måte:
>>> print datetime.datetime.now()
2012-12-15 11:15:09.205000
Du kan gjengi tidsstempelet til strengen eksplisitt:
>>> str(datetime.datetime.now())
'2012-12-15 11:15:24.984000'
Eller du kan være enda mer eksplisitt for å formatere tidsstempelet slik du vil:
>>> datetime.datetime.now().strftime("%A, %d. %B %Y %I:%M%p")
'Saturday, 15. December 2012 11:19AM'
Hvis du vil ha ISO-formatet, bruker du .isoformat()
-metoden for objektet:
>>> datetime.datetime.now().isoformat()
'2013-11-18T08:18:31.809000'
Du kan bruke disse i variabler for beregninger og utskrift uten konverteringer.
>>> 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
Basert på svaret fra #squiguy, for å få et ekte tidsstempel ville jeg skrive cast it from float.
>>> import time
>>> ts = int(time.time())
>>> print(ts)
1389177318
Det er i det minste konseptet.