it-swarm.com.de

Wie kann man die aktuelle Zeit in python abrufen und in Jahr, Monat, Tag, Stunde, Minute aufteilen?

Ich möchte die aktuelle Zeit in Python abrufen und sie Variablen wie year, month, day, hour, minute zuweisen. Wie kann das in Python 2.7 gemacht werden?

226
user781486

Das datetime Modul ist dein Freund:

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

Sie benötigen keine separaten Variablen. Die Attribute für das zurückgegebene Objekt datetime haben alles, was Sie benötigen.

412
tzaman

Die datetime Antwort von tzaman ist viel sauberer, aber Sie können es mit dem ursprünglichen python time Modul tun:

import time
strings = time.strftime("%Y,%m,%d,%H,%M,%S")
t = strings.split(',')
numbers = [ int(x) for x in t ]
print numbers

Ausgabe:

[2016, 3, 11, 8, 29, 47]
24
vossman77

Hier ist ein Einzeiler, der knapp unter der max. 80 Zeichen-Linie liegt.

import time
year, month, day, hour, minute = map(int, time.strftime("%Y %m %d %H %M").split())
23
rigsby

Wenn Sie timetuple des datetime-Objekts entpacken, sollten Sie das bekommen, was Sie wollen:

from datetime import datetime

n = datetime.now()
t = n.timetuple()
y, m, d, h, min, sec, wd, yd, i = t
13
skyline75489

Für python

import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
5

Sehen wir uns an, wie Tag, Monat und Jahr in python abgerufen und gedruckt werden:

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)

ergebnis:

day_month_year: 2019-03-26
5
Tomer Ben David
import time
year = time.strftime("%Y") # or "%y"
3
xiaoweiz

Sie können gmtime verwenden

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

Hinweis: Ein Zeitstempel kann an gmtime übergeben werden. Die Standardeinstellung ist die aktuelle Uhrzeit, die von time () zurückgegeben wird.

eg.
gmtime(1521174681)

Siehe struct_time

2
Sreeragh A R

Drei Bibliotheken für den Zugriff auf und die Bearbeitung von Datums- und Uhrzeitangaben, nämlich datetime, arrow und pendulum, stellen diese Elemente in named-Tupeln zur Verfügung, auf deren Elemente entweder über name oder index zugegriffen werden kann. Im Übrigen sind die Gegenstände genauso zugänglich. (Ich denke, wenn ich intelligenter wäre, wäre ich nicht überrascht.)

>>> 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]
2
Bill Bell

Dies ist eine ältere Frage, aber ich habe eine Lösung gefunden, von der ich dachte, dass sie anderen gefallen könnte.

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 () kann mit einem anderen Array komprimiert werden, wodurch beschriftete Tupel erstellt werden. Wirf das in ein Wörterbuch und das resultierende Produkt kann mit get_current_datetime_as_dict()['year'] konsumiert werden.

Dies hat etwas mehr Aufwand als einige der anderen Lösungen hier, aber ich fand es so schön, im Code auf benannte Werte zugreifen zu können.

1
TopherGopher