Ce este modulul/metodei utilizate pentru a obține ora curentă?
Utilizare:
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2009, 1, 6, 15, 8, 24, 78915)
>>> print(datetime.datetime.now())
2009-01-06 15:08:24.789150
Și doar timpul:
>>> datetime.datetime.now().time()
datetime.time(15, 8, 24, 78915)
>>> print(datetime.datetime.now().time())
15:08:24.789150
A se vedea documentația pentru mai multe informații.
Pentru a salva tastarea, puteți importa "datetime" obiect de "datetime" module:
>>> from datetime import datetime
Apoi scoateți de conducere `datetime. din toate cele de mai sus.
Puteți utiliza de timp.strftime()
:
>>> from time import gmtime, strftime
>>> strftime("%Y-%m-%d %H:%M:%S", gmtime())
'2009-01-05 22:14:39'
from datetime import datetime
datetime.now().strftime('%Y-%m-%d %H:%M:%S')
Pentru acest exemplu, ieșirea va fi o astfel de prognoze: '2013-09-18 11:16:32'
Aici este lista strftime
directive.
Cum pot obține ora curentă în Python?
"Timp" modul oferă funcții care ne spune de timp în "de secunde din epoca", precum și alte utilități.
import time
Acesta este format, ar trebui să ia amprente de timp pentru salvarea în baza de date. Acesta este un simplu număr în virgulă mobilă, care poate fi convertit la un număr întreg. De asemenea, este bun pentru aritmetica în câteva secunde, deoarece reprezintă numărul de secunde de la 1 ianuarie 1970 00:00:00, și este memorie de lumină în raport cu celelalte reprezentări de timp ne-am'll fi uitat la următoarele:
>>> time.time()
1424233311.771502
Acest timestamp nu ține cont de salt de secunde, așa că's nu liniar - secunde salt sunt ignorate. Deci, în timp ce nu este echivalent cu cel internațional UTC standard, este aproape, și, prin urmare, destul de bun pentru cele mai multe cazuri de evidență.
Acest lucru nu este ideal pentru oameni de programare, cu toate acestea. Dacă aveți un eveniment viitor care doriți să aibă loc la un anumit moment în timp, te'll doriți să stocați acel moment cu un șir de caractere care poate fi analizat într-un obiect datetime sau un serializat obiect datetime (acestea vor fi descrise mai târziu).
de timp.ctime
Puteți, de asemenea, reprezintă la ora actuală în mod preferat de către sistemul de operare (ceea ce înseamnă că se poate schimba atunci când vă schimbați preferințele de sistem, astfel încât don't se bazează pe acesta pentru a fi standard pe toate sistemele, așa cum am'am văzut alții așteaptă). Acest lucru este de obicei ușor de utilizat, dar nu't de obicei duce la siruri de caractere se poate sorta în ordine cronologică:
>>> time.ctime()
'Tue Feb 17 23:21:56 2015'
Puteți hidrata marcajele de timp în formă lizibilă pentru om cu ctime, la fel de bine:
>>> time.ctime(1424233311.771502)
'Tue Feb 17 23:21:51 2015'
Această conversie este, de asemenea, bun pentru păstrarea (cu excepția cazului în text, care va fi analizat de către om - și cu bună Recunoaștere Optică a caracterelor și de Inteligență Artificială, cred că numărul acestor cazuri va diminua).
datetime
modululLa "datetime" module este, de asemenea, destul de util aici:
>>> import datetime
Anii datetime.acum este o clasa metodă care returnează ora curentă. Se folosește timp.localtime fără fusul orar info (dacă nu li se acordă, în caz contrar, a se vedea zona de fus orar conștienți de mai jos). Ea are o reprezentare (care ar permite de a recrea un obiect echivalent) repetat pe coajă, dar atunci când tipărite (sau constrâns să o
str`), este într-uman poate fi citit (și aproape ISO) format, și lexicografică fel este echivalent cu cronologică fel:
>>> datetime.datetime.now()
datetime.datetime(2015, 2, 17, 23, 43, 49, 94252)
>>> print(datetime.datetime.now())
2015-02-17 23:43:51.782461
utcnow
Puteți obține un obiect datetime în ora UTC, un standard global, de a face acest lucru:
>>> datetime.datetime.utcnow()
datetime.datetime(2015, 2, 18, 4, 53, 28, 394163)
>>> print(datetime.datetime.utcnow())
2015-02-18 04:53:31.783988
UTC este un timp standard, care este aproape echivalentă cu cea GMT fus orar. (În timp ce GMT și UTC nu se schimba pentru Ora de Vară, utilizatorii pot trece la alte fusuri orare, ca Britanic Timp de Vară, în timpul Verii.)
Cu toate acestea, nici unul dintre datetime obiecte noi'am creat până în prezent pot fi convertite cu ușurință în diferite fusuri orare. Putem rezolva problema asta cu pytz
module:
>>> import pytz
>>> then = datetime.datetime.now(pytz.utc)
>>> then
datetime.datetime(2015, 2, 18, 4, 55, 58, 753949, tzinfo=<UTC>)
Echivalent, în Python 3 avem orar
clasa cu un utc orar
exemplu anexat, care face, de asemenea, obiect de fus orar conștienți (dar pentru a converti la un alt fus orar, fără îndemână `pytz modulul este lăsată ca exercițiu pentru cititor):
>>> datetime.datetime.now(datetime.timezone.utc)
datetime.datetime(2015, 2, 18, 22, 31, 56, 564191, tzinfo=datetime.timezone.utc)
Și vom vedea că puteți converti cu ușurință să orare de original utc obiect.
>>> print(then)
2015-02-18 04:55:58.753949+00:00
>>> print(then.astimezone(pytz.timezone('US/Eastern')))
2015-02-17 23:55:58.753949-05:00
Puteți face, de asemenea, un naiv datetime obiect conștienți cu pytz
orar localizarea
metoda, sau prin înlocuirea tzinfo atribut (cu "înlocuiți", acest lucru se face orbește), dar acestea sunt mai mult ultima stațiuni decât cele mai bune practici:
>>> pytz.utc.localize(datetime.datetime.utcnow())
datetime.datetime(2015, 2, 18, 6, 6, 29, 32285, tzinfo=<UTC>)
>>> datetime.datetime.utcnow().replace(tzinfo=pytz.utc)
datetime.datetime(2015, 2, 18, 6, 9, 30, 728550, tzinfo=<UTC>)
Anii pytz modulul ne permite să ne facem "datetime" obiecte de fus orar conștienți de și de a converti ori la sute de orare disponibile în pytz
module.
Unul ar putea aparent serios acest obiect pentru ora UTC și magazin că într-o bază de date, dar ar fi nevoie de mult mai multă memorie și de a fi mai predispuse la erori decât pur și simplu stocarea Unix Epoch timp, ceea ce am și demonstrat în primul rând.
Alte moduri de vizualizare ori sunt mult mai predispuse la erori, mai ales atunci când se ocupă cu date care pot veni din diferite zone de timp. Vrei să existe nici o confuzie cu privire la care un șir de fus orar sau serializate datetime obiect a fost destinat.
Daca're afișarea timp cu Python pentru utilizator, ctime
funcționează bine, nu într-un tabel (nu't de obicei fel de bine), dar, probabil, într-un ceas. Cu toate acestea, eu personal recomand, atunci când se ocupă cu timpul în Python, folosind timpul Unix, sau un fus orar conștienți UTC datetime
obiect.
>>> from time import gmtime, strftime
>>> strftime("%a, %d %b %Y %X +0000", gmtime())
'Tue, 06 Jan 2009 04:54:56 +0000'
Că ieșirile GMT curent în formatul specificat. Există, de asemenea, o localtime()
metoda.
Acest page are mai multe detalii.
Răspunsurile anterioare sunt toate bune sugestii, dar mi se pare cel mai simplu de a folosi ctime()`:
In [2]: from time import ctime
In [3]: ctime()
Out[3]: 'Thu Oct 31 11:40:53 2013'
Acest lucru oferă un frumos formatate reprezentare șir de ora locală.
Cel mai rapid mod este:
>>> import time
>>> time.strftime("%Y%m%d")
'20130924'
De ce nu cere U. s. Naval Observatory, arbitrul oficial al Marinei Statelor Unite?
import requests
from lxml import html
page = requests.get('http://tycho.usno.navy.mil/cgi-bin/timer.pl')
tree = html.fromstring(page.content)
print(tree.xpath('//html//body//h3//pre/text()')[1])
Dacă locuiți în zona DC (ca mine), latenta-ar putea să nu fie prea rău...
Folosind panda pentru a obține ora curentă, un fel de overkilling problema la îndemână:
import pandas as pd
print(pd.datetime.now())
print(pd.datetime.now().date())
print(pd.datetime.now().year)
print(pd.datetime.now().month)
print(pd.datetime.now().day)
print(pd.datetime.now().hour)
print(pd.datetime.now().minute)
print(pd.datetime.now().second)
print(pd.datetime.now().microsecond)
Ieșire:
2017-09-22 12:44:56.092642
2017-09-22
2017
9
22
12
44
56
92693
Aceasta este ceea ce am ajuns cu:
>>>from time import strftime
>>>strftime("%m/%d/%Y %H:%M")
01/09/2015 13:11
De asemenea, acest tabel este o referință necesare pentru alegerea corespunzătoare format coduri pentru a obține data formatat exact așa cum doriți (de la Python "datetime" documentare aici).
dacă utilizați numpy deja apoi direct puteți utiliza numpy.datetime64() funcția.
import numpy as np
str(np.datetime64('now'))
pentru singura data:
str(np.datetime64('today'))
sau, dacă sunteți folosind panda deja, atunci puteți folosi panda.to_datetime() funcția
import pandas as pd
str(pd.to_datetime('now'))
sau,
str(pd.to_datetime('today'))
Puteți utiliza "timpul" modul:
import time
print time.strftime("%d/%m/%Y")
>>> 06/02/2015
Utilizarea de capital " Y "dă întregul an, și folosind" y " ar da 06/02/15
.
Ai putea, de asemenea, utilizați următorul cod pentru a oferi o mai lungă durată de timp:
time.strftime("%a, %d %b %Y %H:%M:%S")
>>> 'Fri, 06 Feb 2015 17:45:09'
import datetime
date_time = datetime.datetime.now()
date = date_time.date() # Gives the date
time = date_time.time() # Gives the time
print date.year, date.month, date.day
print time.hour, time.minute, time.second, time.microsecond
Nu `dir(data) sau orice variabile, inclusiv pachetul. Puteți obține toate atributele și metodele asociate cu variabila.
datetime.acum()
întoarce timpul curent ca un naiv datetime obiect care reprezintă timpul în zona de fus orar local. Această valoare poate fi ambiguă, de exemplu, în timpul DST tranziții ("a cădea înapoi"). Pentru a evita ambiguitatea, fie UTC fus orar ar trebui să fie utilizate:
from datetime import datetime
utc_time = datetime.utcnow()
print(utc_time) # -> 2014-12-22 22:48:59.916417
Sau un fus orar-conștient un obiect care are corespondent zona de fus orar info atașat (Python 3.2+):
from datetime import datetime, timezone
now = datetime.now(timezone.utc).astimezone()
print(now) # -> 2014-12-23 01:49:25.837541+03:00
În mod implicit, now()
returnează funcția de ieșire în YYYY-MM-DD HH:MM:SS:MS
format. Folosesc de mai jos script eșantion pentru a obține data și ora curentă într-un script Python și imprima rezultatele pe ecran. Creați fișierul `getDateTime1.py cu conținut de mai jos.
import datetime
currentDT = datetime.datetime.now()
print (str(currentDT))
Rezultatul arata ca mai jos:
2018-03-01 17:03:46.759624
Încercați săgeată modul de http://crsmithdev.com/arrow/:
import arrow
arrow.now()
Sau UTC versiune:
arrow.utcnow()
Pentru a schimba sale de ieșire, se adaugă .format():
arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')
Pentru un anumit fus orar:
arrow.now('US/Pacific')
Cu o oră în urmă:
arrow.utcnow().replace(hours=-1)
Sau dacă vrei esența.
arrow.get('2013-05-11T21:23:58.970460+00:00').humanize()
>>> '2 years ago'