Yanıtlar:
Tarihinizi biçimlendirmenize yardımcı olması için strftime komutunu kullanabilirsiniz .
Örneğin,
import datetime
t = datetime.datetime(2012, 2, 23, 0, 0)
t.strftime('%m/%d/%Y')
verim:
'02/23/2012'
Biçimlendirme hakkında daha fazla bilgi için buraya bakın
t = datetime.datetime.now()güncel tarihi kullanmak için kullan
dateve datetimenesneler (ve timeayrıca) çıktıyı belirtmek için bir mini dili destekler ve ona erişmek için iki yol vardır:
dt.strftime('format here'):; ve'{:format here}'.format(dt)Böylece örneğiniz şöyle görünebilir:
dt.strftime('%m/%d/%Y')
veya
'{:%m/%d/%Y}'.format(dt)
Tamlık uğruna: nesnenin niteliklerine doğrudan erişebilirsiniz, ancak daha sonra sadece sayıları alırsınız:
'%s/%s/%s' % (dt.month, dt.day, dt.year)
Mini dili öğrenmek için harcanan zaman buna değer.
Referans olarak, mini dilde kullanılan kodlar şunlardır:
%a Hafta içi, yerel ayarın kısaltılmış adı olarak. %A Yerel ayarın tam adı olarak hafta içi. %w Ondalık sayı olarak hafta içi; 0 Pazar ve 6 Cumartesi.%d Sıfır dolgulu ondalık sayı olarak ayın günü.%b Yerel ayarın kısaltılmış adı olarak ay.%B Yerel ayarın tam adı olarak ay.%m Sıfır dolgulu ondalık sayı olarak ay. 01, ..., 12 %y Sıfır dolgulu ondalık sayı olarak yüzyıl olmadan yıl. 00, ..., 99 %Y Yıl ile ondalık sayı olarak yüzyıl. 1970, 1988, 2001, 2013 %H Sıfır dolgulu ondalık sayı olarak saat (24 saat). 00, ..., 23 %I Sıfır dolgulu ondalık sayı olarak saat (12 saatlik zaman). 01, ..., 12 %p Yerel ayar, AM veya PM'ye eşdeğerdir.%M Sıfır dolgulu ondalık sayı olarak dakika. 00, ..., 59 %S Sıfır dolgulu ondalık sayı olarak ikincisidir. 00, ..., 59%f Ondalık sayı olarak mikrosaniye, solda sıfır dolgulu. 000000, ..., 999999%z + HHMM veya -HHMM (safsa boş), +0000, -0400, +1030 biçiminde UTC farkı%Z Saat dilimi adı (normal değilse boş), UTC, EST, CST %j Sıfır dolgulu ondalık sayı olarak yılın günü. 001, ..., 366 %U Sıfır dolgulu ondalık sayı olarak yılın hafta sayısı (Pazar ilk).%W Ondalık sayı olarak yılın hafta sayısı (Pazartesi ilk sıradadır).%c Yerel ayarın uygun tarih ve saat gösterimi. %x Yerel ayarın uygun tarih gösterimi. %X Yerel ayarın uygun zaman gösterimi. %% Bir gerçek '%' karakteri.Başka seçenek:
import datetime
now=datetime.datetime.now()
now.isoformat()
# ouptut --> '2016-03-09T08:18:20.860968'
datetime.datetime.now().ctime()==>'Wed Sep 4 13:12:39 2019'
Basit dize biçimlendirme yöntemlerini kullanabilirsiniz:
>>> dt = datetime.datetime(2012, 2, 23, 0, 0)
>>> '{0.month}/{0.day}/{0.year}'.format(dt)
'2/23/2012'
>>> '%s/%s/%s' % (dt.month, dt.day, dt.year)
'2/23/2012'
'{:%Y-%m-%d %H:%M}'.format(datetime(2001, 2, 3, 4, 5)). Pyformat.info
type-specific formatting de kullanılabilir:
t = datetime.datetime(2012, 2, 23, 0, 0)
"{:%m/%d/%Y}".format(t)
Çıktı:
'02/23/2012'
Eğer datetimedize dönüşüm için basit bir yol arıyorsanız ve biçimi atlayabilirsiniz. datetimeNesneyi dönüştürebilir strve sonra dizi dilimlemeyi kullanabilirsiniz.
In [1]: from datetime import datetime
In [2]: now = datetime.now()
In [3]: str(now)
Out[3]: '2019-04-26 18:03:50.941332'
In [5]: str(now)[:10]
Out[5]: '2019-04-26'
In [6]: str(now)[:19]
Out[6]: '2019-04-26 18:03:50'
Ancak aşağıdakilere dikkat edin. AttributeErrorDeğişken Nonebu durumda başka çözümler yükselirse , bir 'None'dize alırsınız .
In [9]: str(None)[:19]
Out[9]: 'None'
Doğrudan datetime nesnesinin bileşenleriyle çalışarak datetime nesnesini bir dizeye dönüştürmek mümkündür.
from datetime import date
myDate = date.today()
#print(myDate) would output 2017-05-23 because that is today
#reassign the myDate variable to myDate = myDate.month
#then you could print(myDate.month) and you would get 5 as an integer
dateStr = str(myDate.month)+ "/" + str(myDate.day) + "/" + str(myDate.year)
# myDate.month is equal to 5 as an integer, i use str() to change it to a
# string I add(+)the "/" so now I have "5/" then myDate.day is 23 as
# an integer i change it to a string with str() and it is added to the "5/"
# to get "5/23" and then I add another "/" now we have "5/23/" next is the
# year which is 2017 as an integer, I use the function str() to change it to
# a string and add it to the rest of the string. Now we have "5/23/2017" as
# a string. The final line prints the string.
print(dateStr)
Çıktı -> 5/23/2017
Tarih saatini dizeye dönüştürebilirsiniz.
published_at = "{}".format(self.published_at)
Dize birleştirme,, str.joindizeyi oluşturmak için kullanılabilir.
d = datetime.now()
'/'.join(str(x) for x in (d.month, d.day, d.year))
'3/7/2016'
DateTimeFieldveyaDateFielddjango için çok yararlı . Thanks