Vorrei ottenere il tempo corrente in Python e assegnarli in variabili come year
, month
, day
, hour
, minute
. Come è possibile farlo in Python 2.7?
Vorrei ottenere il tempo corrente in Python e assegnarli in variabili come year
, month
, day
, hour
, minute
. Come è possibile farlo in Python 2.7?
Risposte:
Il datetime
modulo è tuo amico:
import datetime
now = datetime.datetime.now()
print now.year, now.month, now.day, now.hour, now.minute, now.second
# 2015 5 6 8 53 40
Non hai bisogno di variabili separate, gli attributi datetime
sull'oggetto restituito hanno tutto ciò di cui hai bisogno.
import time \n now=time.localtime() \n print now.tm_year, now.tm_mon, now.tm_mday, now.tm_hour, now.tm_hour, now.tm_min, now.tm_sec, now.tm_wday, now.tm_yday, now.tm_isdst
Disimballando l' timetuple
oggetto datetime, dovresti ottenere ciò che vuoi:
from datetime import datetime
n = datetime.now()
t = n.timetuple()
y, m, d, h, min, sec, wd, yd, i = t
Per Python 3
import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
Vediamo come ottenere e stampare giorno, mese, anno in Python dall'ora corrente:
import datetime
now = datetime.datetime.now()
year = '{:02d}'.format(now.year)
month = '{:02d}'.format(now.month)
day = '{:02d}'.format(now.day)
hour = '{:02d}'.format(now.hour)
minute = '{:02d}'.format(now.minute)
day_month_year = '{}-{}-{}'.format(year, month, day)
print('day_month_year: ' + day_month_year)
risultato:
day_month_year: 2019-03-26
Tre librerie per l'accesso e la manipolazione di date e orari, vale a dire datetime, freccia e pendolo, rendono tutti questi elementi disponibili in coppie di nomi i cui elementi sono accessibili per nome o indice. Inoltre, gli articoli sono accessibili esattamente nello stesso modo. (Suppongo che se fossi più intelligente non sarei sorpreso.)
>>> YEARS, MONTHS, DAYS, HOURS, MINUTES = range(5)
>>> import datetime
>>> import arrow
>>> import pendulum
>>> [datetime.datetime.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [arrow.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 15]
>>> [pendulum.now().timetuple()[i] for i in [YEARS, MONTHS, DAYS, HOURS, MINUTES]]
[2017, 6, 16, 19, 16]
Puoi usare gmtime
from time import gmtime
detailed_time = gmtime()
#returns a struct_time object for current time
year = detailed_time.tm_year
month = detailed_time.tm_mon
day = detailed_time.tm_mday
hour = detailed_time.tm_hour
minute = detailed_time.tm_min
Nota: un timestamp può essere passato a gmtime, l'impostazione predefinita è l'ora corrente restituita da time ()
eg.
gmtime(1521174681)
Vedi struct_time
Questa è una domanda più vecchia, ma ho trovato una soluzione che pensavo potesse piacere ad altri.
def get_current_datetime_as_dict():
n = datetime.now()
t = n.timetuple()
field_names = ["year",
"month",
"day",
"hour",
"min",
"sec",
"weekday",
"md",
"yd"]
return dict(zip(field_names, t))
timetuple () può essere compresso con un altro array, creando tuple etichettate. Trasmetti questo su un dizionario e il prodotto risultante può essere consumato get_current_datetime_as_dict()['year']
.
Questo ha un po 'più di sovraccarico rispetto ad alcune delle altre soluzioni qui, ma ho trovato così bello poter accedere ai valori nominati per amore di Clartiy nel codice.
puoi usare il modulo datetime per ottenere la data e l'ora correnti in Python 2.7
import datetime
print datetime.datetime.now()
Produzione :
2015-05-06 14:44:14.369392