Bagaimana cara meningkatkan hari datetime?
for i in range(1, 35)
date = datetime.datetime(2003, 8, i)
print(date)
Tetapi saya perlu melewati bulan dan tahun dengan benar? Ada ide?
date = datetime.datetime(2003,8,1,12,4,5)
for i in range(5):
date += datetime.timedelta(days=1)
print(date)
Tanggal yang bertambah dapat dicapai menggunakan objek timedelta:
Mencari objek timedelta di dokumen Python: http://docs.python.org/library/datetime.html
sumber
Berikut adalah metode lain untuk menambahkan hari pada tanggal menggunakan relativedelta dateutil.
Keluaran:
sumber
timedelta()
dari stdlib?Semua jawaban saat ini salah dalam beberapa kasus karena mereka tidak menganggap bahwa zona waktu mengubah offsetnya relatif terhadap UTC. Jadi, dalam beberapa kasus, menambah 24 jam berbeda dengan menambahkan hari kalender.
Solusi yang diajukan
Solusi berikut berfungsi untuk Samoa dan menjaga waktu lokal tetap konstan.
Kode yang Diuji
Hasil tes
sumber
tzinfo == None
).Ini solusi mudah bagi saya:
sumber
Anda juga dapat mengimpor timedelta sehingga kodenya lebih bersih.
Kemudian konversikan ke tanggal menjadi string
Python one liner adalah
sumber
Solusi singkat tanpa perpustakaan sama sekali. :)
Pastikan " string d " benar-benar dalam bentuk
%m/%d/%Y
sehingga Anda tidak akan mengalami masalah transisi dari satu bulan ke bulan berikutnya.sumber
d
untuk8/31/18
kemudian kembali ini8/32/18
. Jika Anda mengubah tahun dari18
, itu hanya rusak.