Sementara aritmatika tanggal dan waktu didukung, fokus penerapannya adalah pada ekstraksi atribut yang efisien untuk pemformatan dan manipulasi keluaran
Lihat juga
ModulFungsi terkait kalender umum
ModulAkses waktu dan konversi
ModulZona waktu konkret yang mewakili basis data zona waktu IANA
Package dateutilThird-party library with expanded time zone and parsing support
Aware and Naive Objects
Date and time objects may be categorized as “aware” or “naive” depending on whether or not they include timezone information
With sufficient knowledge of applicable algorithmic and political time adjustments, such as time zone and daylight saving time information, an aware object can locate itself relative to other aware objects. An aware object represents a specific moment in time that is not open to interpretation.
A naive object does not contain enough information to unambiguously locate itself relative to other date/time objects. Whether a naive object represents Coordinated Universal Time (UTC), local time, or time in some other timezone is purely up to the program, just like it is up to the program whether a particular number represents metres, miles, or mass. Naive objects are easy to understand and to work with, at the cost of ignoring some aspects of reality
For applications requiring aware objects, and objects have an optional time zone information attribute, >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 4, that can be set to an instance of a subclass of the abstract class. These objects capture information about the offset from UTC time, the time zone name, and whether daylight saving time is in effect
Only one concrete class, the class, is supplied by the module. The class can represent simple timezones with fixed offsets from UTC, such as UTC itself or North American EST and EDT timezones. Supporting timezones at deeper levels of detail is up to the application. The rules for time adjustment across the world are more political than rational, change frequently, and there is no standard suitable for every application aside from UTC
Constants
The module exports the following constants
datetime. MINYEARAngka tahun terkecil yang diperbolehkan dalam sebuah atau objek. adalah >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 5
waktu. MAXYEARAngka tahun terbesar yang diperbolehkan dalam sebuah atau objek. adalah >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 _9
waktu. UTCAlias untuk singleton zona waktu UTC
Baru di versi 3. 11
Jenis yang Tersedia
kelas tanggal waktu. tanggalTanggal naif yang diidealkan, dengan asumsi kalender Gregorian saat ini selalu berlaku, dan akan selalu berlaku. Atribut. , , dan
kelas tanggal waktu. waktuWaktu ideal, terlepas dari hari tertentu, dengan asumsi bahwa setiap hari memiliki tepat 24*60*60 detik. (Tidak ada gagasan "detik kabisat" di sini. ) Atribut. , , , , dan
kelas tanggal waktu. tanggal waktuKombinasi tanggal dan waktu. Atribut. , , , , , , , dan
kelas tanggal waktu. timedeltaDurasi yang menyatakan perbedaan antara dua , , atau instance ke resolusi mikrodetik
kelas tanggal waktu. tzinfoKelas dasar abstrak untuk objek informasi zona waktu. Ini digunakan oleh kelas dan untuk memberikan gagasan penyesuaian waktu yang dapat disesuaikan (misalnya, untuk memperhitungkan zona waktu dan/atau waktu musim panas)
kelas tanggal waktu. zona waktuKelas yang mengimplementasikan kelas dasar abstrak sebagai offset tetap dari UTC
Baru di versi 3. 2
Objek jenis ini tidak dapat diubah
Hubungan subkelas
object timedelta tzinfo timezone time date datetime
Properti Umum
Jenis , , , dan berbagi fitur umum ini
Objek jenis ini tidak dapat diubah
Objek jenis ini bersifat hashable, artinya dapat digunakan sebagai kunci kamus
Objek jenis ini mendukung pengawetan yang efisien melalui modul
Menentukan apakah suatu Objek Sadar atau Naif
Objek seperti itu selalu naif
Objek tipe atau mungkin sadar atau naif
Objek d mengetahui jika kedua hal berikut berlaku
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _02 bukan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _04 tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
Kalau tidak, d naif
Objek t sadar jika kedua hal berikut berlaku
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _07 bukan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _09 tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
Kalau tidak, itu naif
Perbedaan antara sadar dan naif tidak berlaku untuk objek
Objek
Objek mewakili durasi, perbedaan antara dua tanggal atau waktu
kelas tanggal waktu. timedelta(hari=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)Semua argumen bersifat opsional dan default ke >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _14. Argumen mungkin bilangan bulat atau float, dan mungkin positif atau negatif
Hanya hari, detik, dan mikrodetik yang disimpan secara internal. Argumen dikonversi ke unit tersebut
Satu milidetik diubah menjadi 1000 mikrodetik
Satu menit diubah menjadi 60 detik
Satu jam diubah menjadi 3600 detik
Seminggu diubah menjadi 7 hari
dan hari, detik, dan mikrodetik kemudian dinormalisasi sehingga representasi menjadi unik, dengan
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _15
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _16 (jumlah detik dalam satu hari)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _17
Contoh berikut mengilustrasikan bagaimana argumen apa pun selain hari, detik, dan mikrodetik "digabungkan" dan dinormalisasi menjadi tiga atribut hasil tersebut
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _
Jika ada argumen yang merupakan pelampung dan ada mikrodetik pecahan, mikrodetik pecahan yang tersisa dari semua argumen digabungkan dan jumlahnya dibulatkan ke mikrodetik terdekat menggunakan tiebreak putaran-setengah-ke-genap. Jika tidak ada argumen yang mengambang, proses konversi dan normalisasi tepat (tidak ada informasi yang hilang)
Jika nilai hari yang dinormalisasi berada di luar rentang yang ditunjukkan, dinaikkan
Perhatikan bahwa normalisasi nilai negatif mungkin mengejutkan pada awalnya. Sebagai contoh
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999)
Atribut kelas
delta waktu. mntObjek paling negatif, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 20
delta waktu. maksObjek paling positif, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 22
delta waktu. resolusiPerbedaan sekecil mungkin antara objek yang tidak sama, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 24
Perhatikan bahwa, karena normalisasi, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _25 > >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 26. >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _27 tidak dapat direpresentasikan sebagai objek
Atribut instance (hanya baca)
Atribut
Nilai
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _29
Antara -999999999 dan 999999999 inklusif
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _30
Antara 0 dan 86399 inklusif
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _31
Antara 0 dan 999999 inklusif
Operasi yang didukung
Operasi
Hasil
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _32
Jumlah t2 dan t3. Setelah itu t1-t2 == t3 dan t1-t3 == t2 benar. (1)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _33
Selisih t2 dan t3. Setelah itu t1 == t2 - t3 dan t2 == t1 + t3 benar. (1)(6)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _34
Delta dikalikan dengan bilangan bulat. Setelah itu t1 // i == t2 benar, asalkan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 35
Secara umum, t1 * i == t1 * (i-1) + t1 benar. (1)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _36
Delta dikalikan dengan pelampung. The result is rounded to the nearest multiple of timedelta. resolution using round-half-to-even
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 37
Pembagian (3) durasi keseluruhan t2 dengan satuan interval t3. Mengembalikan objek
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _39
Delta dibagi dengan float atau int. Hasilnya dibulatkan ke kelipatan timedelta terdekat. resolusi menggunakan putaran-setengah-ke-genap
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _40 atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 41
Lantai dihitung dan sisanya (jika ada) dibuang. Dalam kasus kedua, bilangan bulat dikembalikan. (3)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _42
Sisanya dihitung sebagai objek. (3)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _44
Menghitung hasil bagi dan sisanya. >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _45 (3) dan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 46. q adalah bilangan bulat dan r adalah objek
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _48
Mengembalikan objek dengan nilai yang sama. (2)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _50
setara dengan (-t1. hari, -t1. detik, -t1. mikrodetik), dan ke t1* -1. (1)(4)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _52
setara dengan +t saat >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 53, dan ke -t saat >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 54. (2)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _55
Mengembalikan string dalam bentuk >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 56, dengan D negatif untuk negatif >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 57. (5)
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _58
Mengembalikan representasi string dari objek sebagai panggilan konstruktor dengan nilai atribut kanonis
Catatan
Ini tepat tetapi mungkin meluap
Ini tepat dan tidak bisa meluap
Pembagian dengan 0 menimbulkan
-timedelta. max tidak dapat direpresentasikan sebagai objek
Representasi string objek dinormalisasi serupa dengan representasi internalnya. Hal ini menyebabkan hasil yang agak tidak biasa untuk timedelta negatif. Sebagai contoh
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00
Ekspresi >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _63 akan selalu sama dengan ekspresi >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 64 kecuali jika t3 sama dengan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 25;
Selain operasi yang tercantum di atas, objek mendukung penambahan dan pengurangan tertentu dengan objek dan (lihat di bawah)
Berubah di versi 3. 2. Pembagian lantai dan pembagian sebenarnya dari suatu objek oleh objek lain sekarang didukung, seperti operasi sisa dan fungsinya. Pembagian dan perkalian sebenarnya dari suatu objek dengan objek sekarang didukung.
Perbandingan objek didukung, dengan beberapa peringatan
Perbandingan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 75 atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 76 selalu mengembalikan a , apa pun jenis objek yang dibandingkan
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False
Untuk semua perbandingan lainnya (seperti >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 78 dan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 79), ketika suatu objek dibandingkan dengan objek dari tipe yang berbeda, dinaikkan
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int'
Dalam konteks Boolean, sebuah objek dianggap benar jika dan hanya jika tidak sama dengan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 83
Instance methods
delta waktu. total_detik()Return the total number of seconds contained in the duration. Equivalent to >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 84. For interval units other than seconds, use the division form directly (e. g. >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 85)
Note that for very large time intervals (greater than 270 years on most platforms) this method will lose microsecond accuracy
Baru di versi 3. 2
Examples of usage.
An additional example of normalization
>>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0
Examples of arithmetic
>>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3)
Objek
A object represents a date (year, month and day) in an idealized calendar, the current Gregorian calendar indefinitely extended in both directions
January 1 of year 1 is called day number 1, January 2 of year 1 is called day number 2, and so on.
class datetime. date(year , month , day)All arguments are required. Arguments must be integers, in the following ranges
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 90
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 91
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 92
If an argument outside those ranges is given, is raised
Other constructors, all class methods
classmethod date. today()Return the current local date
This is equivalent to >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 94
classmethod date. fromtimestamp(timestamp)Return the local date corresponding to the POSIX timestamp, such as is returned by
This may raise , if the timestamp is out of the range of values supported by the platform C >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 function, and on >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 failure. It’s common for this to be restricted to years from 1970 through 2038. Note that on non-POSIX systems that include leap seconds in their notion of a timestamp, leap seconds are ignored by
Changed in version 3. 3. Raise instead of if the timestamp is out of the range of values supported by the platform C >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 function. Raise instead of on >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 failure.
classmethod date. fromordinal(ordinal)Return the date corresponding to the proleptic Gregorian ordinal, where January 1 of year 1 has ordinal 1
is raised unless >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 08. For any date d, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 09
classmethod date. fromisoformat(date_string)Return a corresponding to a date_string given in any valid ISO 8601 format, except ordinal dates (e. g. >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 11)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4)
New in version 3. 7
Changed in version 3. 11. Previously, this method only supported the format >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 12.
classmethod date. fromisocalendar(year , week , day)Return a corresponding to the ISO calendar date specified by year, week and day. This is the inverse of the function
New in version 3. 8
Atribut kelas
date. minThe earliest representable date, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 15
date. maxThe latest representable date, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 16
date. resolutionThe smallest possible difference between non-equal date objects, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 17
Atribut instance (hanya baca)
date. yearBetween and inclusive
date. monthBetween 1 and 12 inclusive
date. dayBetween 1 and the number of days in the given month of the given year
Operasi yang didukung
Operasi
Hasil
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 20
date2 will be >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 21 days after date1. (1)
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 22
Computes date2 such that >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 23. (2)
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 24
(3)
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 25
date1 is considered less than date2 when date1 precedes date2 in time. (4)
Catatan
date2 is moved forward in time if >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 26, or backward if >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 27. Afterward >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 28. >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 29 and >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 30 are ignored. is raised if >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 32 would be smaller than or larger than
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 29 and >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 30 are ignored
This is exact, and cannot overflow. timedelta. detik dan delta waktu. mikrodetik adalah 0, dan tanggal2 + timedelta == tanggal1 setelahnya
Dengan kata lain, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _25 jika dan hanya jika >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 38. Perbandingan tanggal muncul jika perbandingan lainnya juga bukan objek. Namun, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _41 dikembalikan sebagai gantinya jika pembanding lainnya memiliki atribut >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 42. Pengait ini memberi kesempatan pada objek tanggal jenis lain untuk mengimplementasikan perbandingan tipe campuran. Jika tidak, ketika suatu objek dibandingkan dengan objek dari jenis yang berbeda, dimunculkan kecuali perbandingannya adalah >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 75 atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 76. Kasus terakhir kembali atau , masing-masing
Dalam konteks Boolean, semua objek dianggap benar
Instance methods
kencan. replace(year=self. year , month=self. month , day=self. day)Return a date with the same value, except for those parameters given new values by whichever keyword arguments are specified
Example
>>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26)
date. timetuple()Return a such as returned by
The hours, minutes and seconds are 0, and the DST flag is -1
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 52 is equivalent to
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 0
where >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 53 is the day number within the current year starting with >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 5 for January 1st
date. toordinal()Return the proleptic Gregorian ordinal of the date, where January 1 of year 1 has ordinal 1. For any object d, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 09
date. weekday()Return the day of the week as an integer, where Monday is 0 and Sunday is 6. For example, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 57, a Wednesday. See also
date. isoweekday()Return the day of the week as an integer, where Monday is 1 and Sunday is 7. For example, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 59, a Wednesday. See also ,
date. isocalendar()Return a object with three components. >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 1, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 63 and >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 64
The ISO calendar is a widely used variant of the Gregorian calendar.
The ISO year consists of 52 or 53 full weeks, and where a week starts on a Monday and ends on a Sunday. The first week of an ISO year is the first (Gregorian) calendar week of a year containing a Thursday. This is called week number 1, and the ISO year of that Thursday is the same as its Gregorian year
For example, 2004 begins on a Thursday, so the first week of ISO year 2004 begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 1
Changed in version 3. 9. Result changed from a tuple to a .
date. isoformat()Return a string representing the date in ISO 8601 format, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 12
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 2
date. __str__()For a date d, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 66 is equivalent to >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 67
date. ctime()Return a string representing the date
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 3
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 68 is equivalent to
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 4
on platforms where the native C >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 69 function (which invokes, but which does not invoke) conforms to the C standard
date. strftime(format)Return a string representing the date, controlled by an explicit format string. Format codes referring to hours, minutes or seconds will see 0 values. For a complete list of formatting directives, see
date. __format__(format)Same as . This makes it possible to specify a format string for a object in and when using . For a complete list of formatting directives, see
Examples of Usage.
Example of counting days to an event
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 5
More examples of working with
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 6
Objek
A object is a single object containing all the information from a object and a object
Like a object, assumes the current Gregorian calendar extended in both directions; like a object, assumes there are exactly 3600*24 seconds in every day
Constructor
class datetime. datetime(year , month , day , hour=0 , minute=0 , second=0 , microsecond=0 , tzinfo=None , * , fold=0)The year, month and day arguments are required. tzinfo may be >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, or an instance of a subclass. The remaining arguments must be integers in the following ranges
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 90,
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 91,
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 92,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 90,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 91,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 92,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 93,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 94
If an argument outside those ranges is given, is raised
New in version 3. 6. Added the >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 96 argument.
Other constructors, all class methods
classmethod datetime. today()Return the current local datetime, with >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
Equivalent to
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 7
See also ,
This method is functionally equivalent to , but without a >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 02 parameter
classmethod datetime. now(tz=None)Return the current local date and time
If optional argument tz is >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 or not specified, this is like , but, if possible, supplies more precision than can be gotten from going through a timestamp (for example, this may be possible on platforms supplying the C >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 06 function)
If tz is not >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, it must be an instance of a subclass, and the current date and time are converted to tz’s time zone
This function is preferred over and
classmethod datetime. utcnow()Return the current UTC date and time, with >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
This is like , but returns the current UTC date and time, as a naive object. An aware current UTC datetime can be obtained by calling >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 15. See also
Warning
Because naive >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 7 objects are treated by many >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 7 methods as local times, it is preferred to use aware datetimes to represent times in UTC. As such, the recommended way to create an object representing the current time in UTC is by calling >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 15
classmethod datetime. fromtimestamp(timestamp , tz=None)Return the local date and time corresponding to the POSIX timestamp, such as is returned by . If optional argument tz is >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 or not specified, the timestamp is converted to the platform’s local date and time, and the returned object is naive
If tz is not >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, it must be an instance of a subclass, and the timestamp is converted to tz’s time zone
may raise , if the timestamp is out of the range of values supported by the platform C >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 or >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 functions, and on >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 or >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 failure. It’s common for this to be restricted to years in 1970 through 2038. Note that on non-POSIX systems that include leap seconds in their notion of a timestamp, leap seconds are ignored by , and then it’s possible to have two timestamps differing by a second that yield identical objects. This method is preferred over
Changed in version 3. 3. Raise instead of if the timestamp is out of the range of values supported by the platform C >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 or >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 functions. Raise instead of on >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 97 or >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 failure.
Changed in version 3. 6. may return instances with set to 1.
classmethod datetime. utcfromtimestamp(timestamp)Return the UTC corresponding to the POSIX timestamp, with >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03. (The resulting object is naive. )
This may raise , if the timestamp is out of the range of values supported by the platform C >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 function, and on >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 failure. It’s common for this to be restricted to years in 1970 through 2038
To get an aware object, call
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 8
On the POSIX compliant platforms, it is equivalent to the following expression
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 9
except the latter formula always supports the full years range. between and inclusive
Warning
Because naive >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 7 objects are treated by many >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 7 methods as local times, it is preferred to use aware datetimes to represent times in UTC. As such, the recommended way to create an object representing a specific timestamp in UTC is by calling >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 58
Changed in version 3. 3. Raise instead of if the timestamp is out of the range of values supported by the platform C >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 function. Raise instead of on >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 failure.
classmethod datetime. fromordinal(ordinal)Return the corresponding to the proleptic Gregorian ordinal, where January 1 of year 1 has ordinal 1. is raised unless >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 67. The hour, minute, second and microsecond of the result are all 0, and is >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
classmethod datetime. combine(date , time , tzinfo=self. tzinfo)Return a new object whose date components are equal to the given object’s, and whose time components are equal to the given object’s. If the tzinfo argument is provided, its value is used to set the attribute of the result, otherwise the attribute of the time argument is used
For any object d, >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 76. If date is a object, its time components and attributes are ignored
Changed in version 3. 6. Added the tzinfo argument.
classmethod datetime. fromisoformat(date_string)Return a corresponding to a date_string in any valid ISO 8601 format, with the following exceptions
Time zone offsets may have fractional seconds
The >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 80 separator may be replaced by any single unicode character
Ordinal dates are not currently supported
Fractional hours and minutes are not supported
Examples
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 0
New in version 3. 7
Changed in version 3. 11. Sebelumnya, metode ini hanya mendukung format yang dapat dipancarkan oleh atau.
metode kelas tanggal waktu. dari isocalendar(tahun , minggu, day)Kembalikan yang sesuai dengan tanggal kalender ISO yang ditentukan berdasarkan tahun, minggu, dan hari. Komponen non-tanggal dari datetime diisi dengan nilai default normalnya. Ini adalah kebalikan dari fungsi
New in version 3. 8
metode kelas tanggal waktu. strptime(date_string , format)Kembalikan yang sesuai dengan date_string, diurai menurut format
Ini setara dengan
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 1
dimunculkan jika date_string dan format tidak dapat diuraikan oleh atau jika mengembalikan nilai yang bukan time tuple. Untuk daftar lengkap arahan pemformatan, lihat
Atribut kelas
datetime. mntTerwakili paling awal, >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _89
waktu. maksPerwakilan terbaru, >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _91
waktu. resolusiPerbedaan sekecil mungkin antara objek yang tidak sama, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 24
Atribut instance (hanya baca)
waktu. tahunBetween and inclusive
waktu. bulanBetween 1 and 12 inclusive
waktu. hariBetween 1 and the number of days in the given month of the given year
waktu. jamDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _96
waktu. menitDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _97
waktu. detikDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _97
waktu. mikrodetikDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _99
waktu. tzinfoObjek diteruskan sebagai argumen tzinfo ke konstruktor, atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 jika tidak ada yang diteruskan
waktu. lipatDi >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _02. Digunakan untuk membedakan waktu dinding selama interval berulang. (Interval berulang terjadi saat jam diputar mundur di penghujung waktu musim panas atau saat offset UTC untuk zona saat ini dikurangi karena alasan politik. ) Nilai 0 (1) mewakili dua momen awal (kemudian) dengan representasi waktu dinding yang sama
Baru di versi 3. 6
Operasi yang didukung
Operasi
Hasil
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _03
(1)
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _04
(2)
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _05
(3)
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _06
Dibandingkan dengan. (4)
datetime2 adalah durasi timedelta dihapus dari datetime1, bergerak maju dalam waktu jika >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 21 > 0, atau mundur jika >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 21 < 0. Hasilnya memiliki atribut yang sama dengan input datetime, dan datetime2 - datetime1 == timedelta after. dinaikkan jika datetime2. tahun akan lebih kecil dari atau lebih besar dari. Perhatikan bahwa tidak ada penyesuaian zona waktu yang dilakukan meskipun inputnya adalah objek sadar
Menghitung datetime2 sehingga datetime2 + timedelta == datetime1. Sebagai tambahan, hasilnya memiliki atribut yang sama dengan input datetime, dan tidak ada penyesuaian zona waktu yang dilakukan meskipun inputnya aware
Pengurangan a dari a didefinisikan hanya jika kedua operan naif, atau jika keduanya sadar. Jika yang satu sadar dan yang lain naif, diangkat
Jika keduanya naif, atau keduanya sadar dan memiliki atribut yang sama, atribut diabaikan, dan hasilnya adalah objek t sehingga >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 22. Tidak ada penyesuaian zona waktu yang dilakukan dalam kasus ini
Jika keduanya sadar dan memiliki atribut yang berbeda, ________ 55 ______ 24 bertindak seolah-olah a dan b pertama kali dikonversi ke waktu waktu UTC yang naif terlebih dahulu. Hasilnya adalah >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _25 kecuali implementasinya tidak pernah meluap
datetime1 dianggap kurang dari datetime2 saat datetime1 mendahului datetime2 dalam waktu
Jika satu pembanding naif dan yang lain sadar, dimunculkan jika perbandingan pesanan dicoba. Untuk perbandingan kesetaraan, contoh naif tidak pernah sama dengan contoh sadar
Jika kedua comparand sadar, dan memiliki atribut yang sama, atribut umum diabaikan dan waktu dasar dibandingkan. Jika kedua komparand sadar dan memiliki atribut yang berbeda, komparand disesuaikan terlebih dahulu dengan mengurangkan offset UTC-nya (diperoleh dari >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 30)
Berubah di versi 3. 3. Perbandingan kesetaraan antara kejadian sadar dan naif tidak meningkat.
Catatan
Untuk menghentikan perbandingan agar tidak jatuh kembali ke skema default untuk membandingkan alamat objek, perbandingan tanggal dan waktu biasanya muncul jika perbandingan lain juga bukan objek. Namun, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _41 dikembalikan sebagai gantinya jika pembanding lainnya memiliki atribut >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 42. Pengait ini memberi kesempatan pada objek tanggal jenis lain untuk mengimplementasikan perbandingan tipe campuran. Jika tidak, ketika suatu objek dibandingkan dengan objek dari jenis yang berbeda, dimunculkan kecuali perbandingannya adalah >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 75 atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 76. Kasus terakhir kembali atau , masing-masing
Instance methods
waktu. date()Mengembalikan objek dengan tahun, bulan, dan hari yang sama
waktu. waktu()Kembalikan objek dengan jam, menit, detik, mikrodetik, dan lipat yang sama. adalah >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _03. Lihat juga metode
Berubah di versi 3. 6. Nilai lipatan disalin ke objek yang dikembalikan.
waktu. timetz()Kembalikan objek dengan atribut jam, menit, detik, mikrodetik, lipat, dan tzinfo yang sama. Lihat juga metode
Berubah di versi 3. 6. Nilai lipatan disalin ke objek yang dikembalikan.
waktu. ganti(tahun=diri. tahun , bulan=diri. bulan , hari=diri. hari , jam=diri. jam , menit=diri. menit , detik=diri. detik , mikrodetik=diri. mikrodetik , tzinfo=self. tzinfo , * , lipat=0)Kembalikan datetime dengan atribut yang sama, kecuali untuk atribut yang diberi nilai baru dengan argumen kata kunci mana pun yang ditentukan. Perhatikan bahwa >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _52 dapat ditentukan untuk membuat waktu naif dari waktu yang diketahui tanpa konversi data tanggal dan waktu
New in version 3. 6. Added the >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 96 argument.
waktu. astimezone(tz=Tidak ada)Mengembalikan objek dengan atribut baru tz, sesuaikan data tanggal dan waktu sehingga hasilnya waktu UTC sama dengan diri sendiri, tetapi dalam waktu lokal tz
Jika diberikan, tz harus merupakan turunan dari subkelas, dan metode dan tidak boleh mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03. Jika diri naif, dianggap mewakili waktu dalam zona waktu sistem
Jika dipanggil tanpa argumen (atau dengan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _60) zona waktu lokal sistem diasumsikan untuk zona waktu target. Atribut >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _61 dari instance datetime yang dikonversi akan disetel ke instance dengan nama zona dan offset diperoleh dari OS
Jika >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _63 adalah tz, >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 64 sama dengan diri. tidak ada penyesuaian data tanggal atau waktu yang dilakukan. Kalau tidak, hasilnya adalah waktu lokal di zona waktu tz, mewakili waktu UTC yang sama dengan diri sendiri. setelah >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _65, >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 66 akan memiliki data tanggal dan waktu yang sama dengan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 67
Jika Anda hanya ingin melampirkan objek zona waktu tz ke datetime dt tanpa penyesuaian data tanggal dan waktu, gunakan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 68. Jika Anda hanya ingin menghapus objek zona waktu dari datetime dt yang diketahui tanpa konversi data tanggal dan waktu, gunakan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 69
Perhatikan bahwa metode default dapat diganti dalam subkelas untuk memengaruhi hasil yang dikembalikan oleh. Mengabaikan kasus kesalahan, bertindak seperti
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 2
Berubah di versi 3. 3. tz sekarang dapat dihilangkan.
Berubah di versi 3. 6. Metode sekarang dapat dipanggil pada instance naif yang dianggap mewakili waktu lokal sistem.
waktu. utcoffset()Jika >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, yang lain mengembalikan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 78, dan memunculkan pengecualian jika yang terakhir tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 atau objek dengan besaran kurang dari satu hari
Berubah di versi 3. 7. The UTC offset is not restricted to a whole number of minutes.
waktu. dst()Jika >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, yang lain mengembalikan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 84, dan memunculkan pengecualian jika yang terakhir tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 atau objek dengan besaran kurang dari satu hari
Berubah di versi 3. 7. Offset DST tidak terbatas pada jumlah menit penuh.
waktu. tzname()Jika >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _03, mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, yang lain mengembalikan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 90, memunculkan pengecualian jika yang terakhir tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 atau objek string,
waktu. jadwal()Return a such as returned by
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 52 is equivalent to
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 3
di mana >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _53 adalah nomor hari dalam tahun berjalan dimulai dengan >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 5 untuk tanggal 1 Januari. Bendera >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _97 dari hasil diatur sesuai dengan metode. adalah >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 atau mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 97 diatur ke >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 04;
waktu. utctimetuple()Jika contoh d naif, ini sama dengan >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 52 kecuali bahwa >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 97 dipaksa untuk 0 terlepas dari apa >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 13 kembali. DST tidak pernah berlaku untuk waktu UTC
Jika d diketahui, d dinormalisasi ke waktu UTC, dengan mengurangkan >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 14, dan a untuk waktu yang dinormalisasi dikembalikan. >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _97 dipaksa untuk 0. Perhatikan bahwa an dapat dinaikkan jika d. tahun adalah >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 _4 atau >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 8 dan penyesuaian UTC melampaui batas tahun
Warning
Karena objek >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 7 yang naif diperlakukan oleh banyak metode >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 7 sebagai waktu lokal, lebih disukai menggunakan waktu yang diketahui untuk mewakili waktu dalam UTC; . Jika Anda memiliki >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 7 naif yang mewakili UTC, gunakan >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 24 untuk membuatnya sadar, pada titik mana Anda dapat menggunakan
waktu. toordinal()Kembalikan ordinal Gregorian proleptik dari tanggal tersebut. Sama seperti >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _26
waktu. stempel waktu()Kembalikan stempel waktu POSIX yang sesuai dengan instance. Nilai yang dikembalikan mirip dengan yang dikembalikan oleh
Contoh naif diasumsikan mewakili waktu lokal dan metode ini bergantung pada fungsi platform C >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 31 untuk melakukan konversi. Karena mendukung rentang nilai yang lebih luas daripada >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 31 pada banyak platform, metode ini dapat meningkatkan waktu jauh di masa lalu atau jauh di masa depan
Untuk instance sadar, nilai pengembalian dihitung sebagai
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _4
Baru di versi 3. 3
Berubah di versi 3. 6. Metode ini menggunakan atribut untuk membedakan waktu selama interval berulang.
Catatan
Tidak ada metode untuk mendapatkan stempel waktu POSIX langsung dari instance naif yang mewakili waktu UTC. Jika aplikasi Anda menggunakan konvensi ini dan zona waktu sistem Anda tidak disetel ke UTC, Anda dapat memperoleh stempel waktu POSIX dengan menyediakan >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 39
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 5
atau dengan menghitung stempel waktu secara langsung
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 6
waktu. hari kerja()Mengembalikan hari dalam seminggu sebagai bilangan bulat, di mana Senin adalah 0 dan Minggu adalah 6. Sama dengan >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _40. Lihat juga
waktu. hari kerja iso()Mengembalikan hari dalam seminggu sebagai bilangan bulat, di mana Senin adalah 1 dan Minggu adalah 7. Sama seperti >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _42. Lihat juga ,
waktu. isocalendar()Kembalikan a dengan tiga komponen. >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 1, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 63 and >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 64. Sama seperti >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _48
waktu. isoformat(sep=', timespec='auto')Kembalikan string yang mewakili tanggal dan waktu dalam format ISO 8601
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _49, jika bukan 0
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _51, jika 0
Jika tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, sebuah string ditambahkan, memberikan offset UTC
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _55, jika bukan 0
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _57, jika 0
Examples
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 7
Argumen opsional sep (default >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 59) adalah pemisah satu karakter, ditempatkan di antara bagian tanggal dan waktu dari hasil. Sebagai contoh
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 8
Argumen opsional timespec menentukan jumlah komponen tambahan waktu yang akan disertakan (defaultnya adalah >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 60). Itu bisa menjadi salah satu dari yang berikut
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _60. Sama seperti >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _62 jika 0, sama seperti >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 64 jika tidak
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _65. Sertakan the dalam format ________0______67 dua digit
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _68. Sertakan dan dalam format >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _71
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _62. Sertakan , , dan dalam format >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 76
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _77. Sertakan waktu penuh, tetapi potong bagian kedua pecahan menjadi milidetik. >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _78
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _64. Sertakan purna waktu dalam format >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 80
Catatan
Komponen waktu yang dikecualikan dipotong, bukan dibulatkan
akan dimunculkan pada argumen timespec yang tidak valid
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _9
Baru di versi 3. 6. Menambahkan argumen timespec.
waktu. __str__()Misalnya d, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _66 setara dengan >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 84
waktu. waktu()Kembalikan string yang mewakili tanggal dan waktu
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _0
String keluaran tidak akan menyertakan informasi zona waktu, terlepas dari apakah masukannya sadar atau naif
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 68 is equivalent to
>>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 4
on platforms where the native C >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 69 function (which invokes, but which does not invoke) conforms to the C standard
waktu. strftime(format)Kembalikan string yang mewakili tanggal dan waktu, dikontrol oleh string format eksplisit. Untuk daftar lengkap arahan pemformatan, lihat
waktu. __format__(format)Same as . This makes it possible to specify a format string for a object in and when using . For a complete list of formatting directives, see
Examples of Usage.
Contoh bekerja dengan objek
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _2
Contoh di bawah menentukan subkelas yang menangkap informasi zona waktu untuk Kabul, Afghanistan, yang menggunakan +4 UTC hingga tahun 1945 dan kemudian +4. 30 UTC sesudahnya
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _3
Penggunaan >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _95 dari atas
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _4
Objek
Objek mewakili waktu (lokal) dalam sehari, terlepas dari hari tertentu, dan dapat disesuaikan melalui objek
kelas tanggal waktu. waktu(jam=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)Semua argumen bersifat opsional. tzinfo mungkin >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, atau turunan dari subkelas. The remaining arguments must be integers in the following ranges
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 90,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 91,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 92,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 93,
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 94
Jika argumen di luar rentang tersebut diberikan, akan dimunculkan. Semua default ke >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _14 kecuali tzinfo, yang defaultnya ke
Atribut kelas
waktu. mntTerwakili paling awal , >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 _10
waktu. maksPerwakilan terbaru, >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 _12
waktu. resolusiPerbedaan sekecil mungkin antara objek yang tidak sama, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 24, meskipun perhatikan bahwa aritmatika pada objek tidak didukung
Atribut instance (hanya baca)
waktu. jamDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _96
waktu. menitDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _97
waktu. detikDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _97
waktu. mikrodetikDi >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _99
waktu. tzinfoObjek diteruskan sebagai argumen tzinfo ke konstruktor, atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 jika tidak ada yang diteruskan
waktu. lipatDi >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _02. Digunakan untuk membedakan waktu dinding selama interval berulang. (Interval berulang terjadi saat jam diputar mundur di penghujung waktu musim panas atau saat offset UTC untuk zona saat ini dikurangi karena alasan politik. ) Nilai 0 (1) mewakili dua momen awal (kemudian) dengan representasi waktu dinding yang sama
Baru di versi 3. 6
objek mendukung perbandingan ke , di mana a dianggap kurang dari b saat a mendahului b dalam waktu. Jika satu pembanding naif dan yang lain sadar, dimunculkan jika perbandingan pesanan dicoba. Untuk perbandingan kesetaraan, contoh naif tidak pernah sama dengan contoh sadar
Jika kedua perbandingan diketahui, dan memiliki atribut yang sama, atribut umum diabaikan dan waktu dasar dibandingkan. Jika kedua komparand sadar dan memiliki atribut yang berbeda, komparand disesuaikan terlebih dahulu dengan mengurangkan offset UTC-nya (diperoleh dari >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 30). Untuk menghentikan perbandingan tipe campuran agar tidak kembali ke perbandingan default berdasarkan alamat objek, saat objek dibandingkan dengan objek dari tipe yang berbeda, dimunculkan kecuali jika perbandingannya adalah >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 75 atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 76. Kasus terakhir kembali atau , masing-masing
Berubah di versi 3. 3. Perbandingan kesetaraan antara kejadian sadar dan naif tidak meningkat.
Dalam konteks Boolean, sebuah objek selalu dianggap benar
Berubah di versi 3. 5. Sebelum Python 3. 5, sebuah objek dianggap salah jika mewakili tengah malam di UTC. Perilaku ini dianggap tidak jelas dan rawan kesalahan dan telah dihapus di Python 3. 5. Lihat bpo-13936 untuk detail selengkapnya.
konstruktor lainnya
metode kelas waktu. fromisoformat(time_string)Kembalikan yang sesuai dengan time_string dalam format ISO 8601 yang valid, dengan pengecualian berikut
Time zone offsets may have fractional seconds
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 80 terkemuka, biasanya diperlukan dalam kasus di mana mungkin ada ambiguitas antara tanggal dan waktu, tidak diperlukan
Detik pecahan dapat memiliki jumlah digit berapa pun (apa pun yang melebihi 6 akan dipotong)
Fractional hours and minutes are not supported
Examples
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _5
New in version 3. 7
Berubah di versi 3. 11. Sebelumnya, metode ini hanya mendukung format yang dapat dipancarkan oleh.
Instance methods
waktu. ganti(jam=diri. jam , menit=diri. menit , detik=diri. detik , mikrodetik=diri. mikrodetik , tzinfo=self. tzinfo , * , fold=0)Return a with the same value, except for those attributes given new values by whichever keyword arguments are specified. Perhatikan bahwa >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _52 dapat ditentukan untuk membuat naif dari aware , tanpa konversi data waktu
New in version 3. 6. Added the >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 96 argument.
waktu. isoformat(spek waktu=')Mengembalikan string yang mewakili waktu dalam format ISO 8601, salah satunya
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 80, jika bukan 0
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _76, jika 0
>>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 _53, jika tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
>>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 _56, jika 0 dan tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
Argumen opsional timespec menentukan jumlah komponen tambahan waktu yang akan disertakan (defaultnya adalah >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 60). Itu bisa menjadi salah satu dari yang berikut
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _60. Sama seperti >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _62 jika 0, sama seperti >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 64 jika tidak
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _65. Sertakan the dalam format ________0______67 dua digit
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _68. Sertakan dan dalam format >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _71
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _62. Sertakan , , dan dalam format >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 76
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _77. Sertakan waktu penuh, tetapi potong bagian kedua pecahan menjadi milidetik. >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _78
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' _64. Sertakan purna waktu dalam format >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 80
Catatan
Komponen waktu yang dikecualikan dipotong, bukan dibulatkan
akan dimunculkan pada argumen timespec yang tidak valid
Example
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _6
Baru di versi 3. 6. Menambahkan argumen timespec.
waktu. __str__()Untuk waktu t, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _55 setara dengan >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 83
waktu. strftime(format)Kembalikan string yang mewakili waktu, dikontrol oleh string format eksplisit. Untuk daftar lengkap arahan pemformatan, lihat
waktu. __format__(format)Same as . This makes it possible to specify a format string for a object in and when using . For a complete list of formatting directives, see
waktu. utcoffset()Jika >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, yang lain mengembalikan >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 90, dan memunculkan pengecualian jika yang terakhir tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 atau objek dengan besaran kurang dari satu hari
Berubah di versi 3. 7. The UTC offset is not restricted to a whole number of minutes.
waktu. dst()Jika >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, yang lain mengembalikan >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 96, dan memunculkan pengecualian jika yang terakhir tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, atau objek dengan besaran kurang dari satu hari
Berubah di versi 3. 7. Offset DST tidak terbatas pada jumlah menit penuh.
waktu. tzname()Jika >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _03, mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, yang lain mengembalikan >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 02, atau memunculkan pengecualian jika yang terakhir tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 atau objek string
Examples of Usage.
Contoh bekerja dengan objek
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _7
Objek
kelas tanggal waktu. tzinfoIni adalah kelas dasar abstrak, artinya kelas ini tidak boleh dipakai secara langsung. Tentukan subkelas untuk menangkap informasi tentang zona waktu tertentu
Instance dari (subclass konkret dari) dapat diteruskan ke konstruktor untuk dan objek. Objek yang terakhir melihat atributnya sebagai waktu lokal, dan objek mendukung metode yang mengungkapkan offset waktu lokal dari UTC, nama zona waktu, dan offset DST, semuanya terkait dengan objek tanggal atau waktu yang diteruskan ke mereka
Anda perlu menurunkan subkelas konkret, dan (setidaknya) menyediakan implementasi dari metode standar yang dibutuhkan oleh metode yang Anda gunakan. Modul ini menyediakan , subkelas konkret sederhana yang dapat mewakili zona waktu dengan offset tetap dari UTC seperti UTC itu sendiri atau EST dan EDT Amerika Utara
Persyaratan khusus untuk pengawetan. Subkelas harus memiliki metode >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) _18 yang dapat dipanggil tanpa argumen, selain itu dapat diasamkan tetapi mungkin tidak diurai lagi. Ini adalah persyaratan teknis yang mungkin dilonggarkan di masa mendatang
Subkelas konkret mungkin perlu mengimplementasikan metode berikut. Tepatnya metode mana yang dibutuhkan bergantung pada kegunaan yang dibuat dari objek sadar. Jika ragu, terapkan saja semuanya
tzinfo. utcoffset(dt)Kembalikan offset waktu lokal dari UTC, sebagai objek yang positif di sebelah timur UTC. Jika waktu lokal di sebelah barat UTC, ini harus negatif
Ini mewakili total offset dari UTC; . Jika offset UTC tidak diketahui, kembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03. Jika tidak, nilai yang dikembalikan harus berupa objek antara >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 26 dan >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 27 (besarnya offset harus kurang dari satu hari). Sebagian besar implementasi mungkin akan terlihat seperti salah satu dari keduanya
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _8
Jika tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _03, sebaiknya juga tidak mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
Implementasi standar kenaikan gaji
Berubah di versi 3. 7. The UTC offset is not restricted to a whole number of minutes.
tzinfo. dst(dt)Mengembalikan penyesuaian waktu musim panas (DST), sebagai objek atau >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 jika informasi DST tidak diketahui
Kembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _83 jika DST tidak berlaku. Jika DST aktif, kembalikan offset sebagai objek (lihat detailnya). Perhatikan bahwa offset DST, jika berlaku, telah ditambahkan ke offset UTC yang dikembalikan oleh , jadi tidak perlu berkonsultasi kecuali jika Anda tertarik untuk mendapatkan info DST secara terpisah. Misalnya, panggil metode atributnya untuk menentukan bagaimana bendera >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 97 harus disetel, dan panggil akun untuk perubahan DST saat melintasi zona waktu
Contoh tz dari subkelas yang memodelkan waktu standar dan siang hari harus konsisten dalam pengertian ini
>>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 49
harus mengembalikan hasil yang sama untuk setiap dt dengan >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 51 Untuk subkelas waras, ungkapan ini menghasilkan "offset standar" zona waktu, yang seharusnya tidak bergantung pada tanggal atau waktu, tetapi hanya pada lokasi geografis. Implementasi bergantung pada ini, tetapi tidak dapat mendeteksi pelanggaran; . Jika sebuah subkelas tidak dapat menjamin hal ini, subkelas tersebut mungkin dapat menggantikan implementasi default dari untuk bekerja dengan benar dengan >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 72 terlepas
Sebagian besar implementasi mungkin akan terlihat seperti salah satu dari keduanya
>>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _9
atau
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 0
Implementasi standar kenaikan gaji
Berubah di versi 3. 7. Offset DST tidak terbatas pada jumlah menit penuh.
tzinfo. tzname(dt)Kembalikan nama zona waktu yang sesuai dengan objek dt, sebagai string. Tidak ada apa pun tentang nama string yang ditentukan oleh modul, dan tidak ada persyaratan bahwa itu berarti sesuatu secara khusus. Misalnya, “GMT”, “UTC”, “-500”, “-5. 00”, “EDT”, “AS/Timur”, “Amerika/New York” semuanya adalah balasan yang valid. Kembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _03 jika nama string tidak diketahui. Perhatikan bahwa ini adalah metode daripada string tetap terutama karena beberapa subclass ingin mengembalikan nama yang berbeda tergantung pada nilai spesifik dari dt yang diteruskan, terutama jika kelas memperhitungkan waktu siang hari
Implementasi standar kenaikan gaji
Metode-metode ini dipanggil oleh objek atau, sebagai tanggapan atas metode mereka dengan nama yang sama. Objek meneruskan dirinya sendiri sebagai argumen, dan objek meneruskan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 sebagai argumen. Oleh karena itu, metode subclass harus disiapkan untuk menerima argumen dt dari >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03, atau dari class
Saat >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _03 diteruskan, terserah desainer kelas untuk memutuskan respons terbaik. Misalnya, mengembalikan >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03 sesuai jika kelas ingin mengatakan bahwa objek waktu tidak berpartisipasi dalam protokol. Mungkin lebih berguna bagi >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) _78 untuk mengembalikan offset standar UTC, karena tidak ada konvensi lain untuk menemukan offset standar
Ketika sebuah objek diteruskan sebagai respons terhadap suatu metode, >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 81 adalah objek yang sama dengan self. metode dapat mengandalkan ini, kecuali kode pengguna memanggil metode secara langsung. Maksudnya adalah metode menafsirkan dt sebagai waktu lokal, dan tidak perlu khawatir tentang objek di zona waktu lain
Ada satu metode lagi yang mungkin ingin ditimpa oleh subclass
tzinfo. fromutc(dt)Ini dipanggil dari implementasi default. Ketika dipanggil dari situ, >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 81 adalah self, dan data tanggal dan waktu dt harus dilihat sebagai menyatakan waktu UTC. Tujuannya adalah untuk menyesuaikan data tanggal dan waktu, mengembalikan waktu yang setara dalam waktu lokal sendiri
Sebagian besar subclass harus dapat mewarisi implementasi default tanpa masalah. Ini cukup kuat untuk menangani zona waktu fixed-offset, dan zona waktu memperhitungkan waktu standar dan siang hari, dan yang terakhir bahkan jika waktu transisi DST berbeda di tahun yang berbeda. Contoh zona waktu yang implementasi defaultnya mungkin tidak ditangani dengan benar dalam semua kasus adalah di mana offset standar (dari UTC) bergantung pada tanggal dan waktu tertentu yang berlalu, yang dapat terjadi karena alasan politik. Implementasi default dari >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _72 dan mungkin tidak menghasilkan hasil yang Anda inginkan jika hasilnya adalah salah satu jam yang mengangkang saat offset standar berubah
Melewatkan kode untuk kasus kesalahan, seperti implementasi default
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _1
Dalam file >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) _95 berikut ada beberapa contoh kelas
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _2
Perhatikan bahwa ada seluk-beluk yang tidak dapat dihindari dua kali per tahun dalam akuntansi subkelas untuk waktu standar dan siang hari, pada titik transisi DST. Untuk konkretnya, pertimbangkan US Eastern (UTC -0500), di mana EDT dimulai menit setelah 1. 59 (EST) pada hari Minggu kedua bulan Maret, dan berakhir menit setelah 1. 59 (EDT) pada hari Minggu pertama bulan November
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _3
Saat DST dimulai (baris "mulai"), jam dinding lokal melompat dari 1. 59 sampai 3. 00. Waktu dinding dalam bentuk 2. MM tidak masuk akal pada hari itu, jadi >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 98 tidak akan memberikan hasil dengan >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 99 pada hari DST dimulai. Misalnya, pada transisi maju musim semi tahun 2016, kita dapatkan
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _4
Saat DST berakhir ("garis akhir"), ada potensi masalah yang lebih buruk. ada satu jam yang tidak bisa dieja dengan jelas dalam waktu dinding lokal. jam terakhir siang hari. Di Timur, itu adalah waktu dalam bentuk 5. MM UTC pada hari waktu siang hari berakhir. Jam dinding lokal melompat dari 1. 59 (waktu siang hari) kembali ke 1. 00 (waktu standar) lagi. Waktu setempat dalam bentuk 1. MM ambigu. >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 72 mimics the local clock’s behavior by mapping two adjacent UTC hours into the same local hour then. Dalam contoh Timur, waktu UTC dalam bentuk 5. MM dan 6. MM keduanya dipetakan ke 1. MM saat dikonversi ke Timur, tetapi waktu sebelumnya memiliki atribut yang disetel ke 0 dan waktu selanjutnya disetel ke 1. Misalnya, pada transisi musim gugur tahun 2016, kami mendapatkan
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 5
Note that the instances that differ only by the value of the attribute are considered equal in comparisons
Applications that can’t bear wall-time ambiguities should explicitly check the value of the attribute or avoid using hybrid subclasses; there are no ambiguities when using , or any other fixed-offset subclass (such as a class representing only EST (fixed offset -5 hours), or only EDT (fixed offset -4 hours))
Lihat juga
IANA timezone databaseThe module has a basic class (for handling arbitrary fixed offsets from UTC) and its attribute (a UTC timezone instance)
>>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 1 brings the IANA timezone database (also known as the Olson database) to Python, and its usage is recommended
The Time Zone Database (often called tz, tzdata or zoneinfo) contains code and data that represent the history of local time for many representative locations around the globe. It is updated periodically to reflect changes made by political bodies to time zone boundaries, UTC offsets, and daylight-saving rules
Objek
The class is a subclass of , each instance of which represents a timezone defined by a fixed offset from UTC
Objects of this class cannot be used to represent timezone information in the locations where different offsets are used in different days of the year or where historical changes have been made to civil time
class datetime. timezone(offset , name=None)The offset argument must be specified as a object representing the difference between the local time and UTC. It must be strictly between >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 26 and >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 27, otherwise is raised
The name argument is optional. If specified it must be a string that will be used as the value returned by the method
Baru di versi 3. 2
Berubah di versi 3. 7. The UTC offset is not restricted to a whole number of minutes.
timezone. utcoffset(dt)Return the fixed value specified when the instance is constructed
The dt argument is ignored. The return value is a instance equal to the difference between the local time and UTC
Berubah di versi 3. 7. The UTC offset is not restricted to a whole number of minutes.
timezone. tzname(dt)Return the fixed value specified when the instance is constructed
If name is not provided in the constructor, the name returned by >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 24 is generated from the value of the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 25 as follows. If offset is >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 83, the name is “UTC”, otherwise it is a string in the format >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 27, where ± is the sign of >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 25, HH and MM are two digits of >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 29 and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 30 respectively
Changed in version 3. 6. Name generated from >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 31 is now plain >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 32, not >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 33.
timezone. dst(dt)Always returns >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03
timezone. fromutc(dt)Return >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 35. The dt argument must be an aware instance, with >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 4 set to >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 38
Atribut kelas
timezone. utcThe UTC timezone, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 39
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40 and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 Behavior
, , and objects all support a >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 45 method, to create a string representing the time under the control of an explicit format string
Conversely, the class method creates a object from a string representing a date and time and a corresponding format string
The table below provides a high-level comparison of >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40 versus >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 50
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 51
Usage
Convert object to a string according to a given format
Parse a string into a object given a corresponding format
Type of method
Instance method
Class method
Method of
; ;
Signature
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 45
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 58
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40 and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 Format Codes
The following is a list of all the format codes that the 1989 C standard requires, and these work on all platforms with a standard C implementation
Directive
Meaning
Example
Notes
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 61
Weekday as locale’s abbreviated name
Sun, Mon, …, Sat (en_US);
So, Mo, …, Sa (de_DE)
(1)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 62
Weekday as locale’s full name
Sunday, Monday, …, Saturday (en_US);
Sonntag, Montag, …, Samstag (de_DE)
(1)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 63
Hari kerja sebagai angka desimal, di mana 0 adalah hari Minggu dan 6 adalah hari Sabtu
0, 1, …, 6
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 64
Day of the month as a zero-padded decimal number
01, 02, …, 31
(9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 65
Month as locale’s abbreviated name
Jan, Feb, …, Dec (en_US);
Jan, Feb, …, Dez (de_DE)
(1)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 66
Month as locale’s full name
January, February, …, December (en_US);
Januar, Februar, …, Dezember (de_DE)
(1)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 67
Month as a zero-padded decimal number
01, 02, …, 12
(9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 68
Year without century as a zero-padded decimal number
00, 01, …, 99
(9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) _69
Tahun dengan abad sebagai angka desimal
0001, 0002, …, 2013, 2014, …, 9998, 9999
(2)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) _70
Jam (jam 24 jam) sebagai angka desimal tanpa bantalan
00, 01, …, 23
(9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) _71
Jam (jam 12 jam) sebagai angka desimal tanpa bantalan
01, 02, …, 12
(9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) _72
Lokal yang setara dengan AM atau PM
AM, PM (en_US);
pagi, sore (de_DE)
(1), (3)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) _73
Menit sebagai angka desimal dengan bantalan nol
00, 01, …, 59
(9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 74
Second as a zero-padded decimal number
00, 01, …, 59
(4), (9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 75
Microsecond as a decimal number, zero-padded to 6 digits
000000, 000001, …, 999999
(5)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 76
UTC offset in the form >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 77 (empty string if the object is naive)
(empty), +0000, -0400, +1030, +063415, -030712. 345216
(6)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 78
Time zone name (empty string if the object is naive)
(empty), UTC, GMT
(6)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 79
Day of the year as a zero-padded decimal number
001, 002, …, 366
(9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 80
Week number of the year (Sunday as the first day of the week) as a zero-padded decimal number. All days in a new year preceding the first Sunday are considered to be in week 0
00, 01, …, 53
(7), (9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 81
Week number of the year (Monday as the first day of the week) as a zero-padded decimal number. All days in a new year preceding the first Monday are considered to be in week 0
00, 01, …, 53
(7), (9)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 82
Locale’s appropriate date and time representation
Tue Aug 16 21. 30. 00 1988 (en_US);
Di 16 Aug 21. 30. 00 1988 (de_DE)
(1)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 83
Locale’s appropriate date representation
08/16/88 (None);
08/16/1988 (en_US);
16. 08. 1988 (de_DE)
(1)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 84
Locale’s appropriate time representation
21. 30. 00 (en_US);
21. 30. 00 (de_DE)
(1)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 85
A literal >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 86 character
%
Several additional directives not required by the C89 standard are included for convenience. These parameters all correspond to ISO 8601 date values
Directive
Meaning
Example
Notes
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 87
ISO 8601 year with century representing the year that contains the greater part of the ISO week (>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 88)
0001, 0002, …, 2013, 2014, …, 9998, 9999
(8)
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 89
ISO 8601 weekday as a decimal number where 1 is Monday
1, 2, …, 7
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 88
ISO 8601 week as a decimal number with Monday as the first day of the week. Week 01 is the week containing Jan 4
01, 02, …, 53
(8), (9)
These may not be available on all platforms when used with the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40 method. Arahan tahun ISO 8601 dan minggu ISO 8601 tidak dapat dipertukarkan dengan arahan tahun dan angka minggu di atas. Calling >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 with incomplete or ambiguous ISO 8601 directives will raise a
Set lengkap kode format yang didukung bervariasi di seluruh platform, karena Python memanggil fungsi >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40 perpustakaan platform C, dan variasi platform adalah hal yang umum. Untuk melihat set lengkap kode format yang didukung pada platform Anda, lihat dokumentasi strftime(3). Ada juga perbedaan antar platform dalam menangani penentu format yang tidak didukung
Baru di versi 3. 6. >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 87, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 89 dan >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 88 ditambahkan.
Detil Teknis
Secara umum, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 98 bertindak seperti >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 00 modul meskipun tidak semua objek mendukung metode >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 42
Untuk metode kelas, nilai defaultnya adalah >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 03. setiap komponen yang tidak ditentukan dalam string format akan ditarik dari nilai default.
Menggunakan >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) _04 sama dengan
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 1
kecuali jika format menyertakan komponen sub-detik atau informasi offset zona waktu, yang didukung di >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 05 tetapi dibuang oleh >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 06
Untuk objek, kode format tahun, bulan, dan hari tidak boleh digunakan, karena objek tidak memiliki nilai seperti itu. If they’re used anyway, >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 09 is substituted for the year, and >>> # Components of another_year add up to exactly 365 days >>> from datetime import timedelta >>> year = timedelta(days=365) >>> another_year = timedelta(weeks=40, days=84, hours=23, .. minutes=50, seconds=600) >>> year == another_year True >>> year.total_seconds() 31536000.0 5 for the month and day
Untuk objek, kode format jam, menit, detik, dan mikrodetik tidak boleh digunakan, karena objek tidak memiliki nilai seperti itu. Jika mereka tetap digunakan, >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) _14 diganti untuk mereka
Untuk alasan yang sama, penanganan string format yang berisi poin kode Unicode yang tidak dapat direpresentasikan dalam rangkaian karakter lokal saat ini juga bergantung pada platform. Pada beberapa platform, titik kode seperti itu dipertahankan utuh dalam keluaran, sementara pada platform lain >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 50 dapat menaikkan atau mengembalikan string kosong sebagai gantinya
Catatan
Because the format depends on the current locale, care should be taken when making assumptions about the output value. Field orderings will vary (for example, “month/day/year” versus “day/month/year”), and the output may contain Unicode characters encoded using the locale’s default encoding (for example, if the current locale is >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 16, the default encoding could be any one of >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 17, >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 18, or >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 19; use to determine the current locale’s encoding)
The >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 method can parse years in the full [1, 9999] range, but years < 1000 must be zero-filled to 4-digit width
Changed in version 3. 2. In previous versions, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40 method was restricted to years >= 1900.
Changed in version 3. 3. In version 3. 2, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40 method was restricted to years >= 1000.
When used with the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 method, the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 72 directive only affects the output hour field if the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 71 directive is used to parse the hour
Berbeda dengan modul, modul tidak mendukung detik kabisat
Saat digunakan dengan metode >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41, direktif >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 75 menerima dari satu hingga enam digit dan bantalan nol di sebelah kanan. >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 75 is an extension to the set of format characters in the C standard (but implemented separately in datetime objects, and therefore always available)
For a naive object, the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 76 and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 78 format codes are replaced by empty strings
For an aware object
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 76>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 57 is transformed into a string of the form >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 77, where >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 67 is a 2-digit string giving the number of UTC offset hours, >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 38 is a 2-digit string giving the number of UTC offset minutes, >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 39 is a 2-digit string giving the number of UTC offset seconds and >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 40 is a 6-digit string giving the number of UTC offset microseconds. The >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 40 part is omitted when the offset is a whole number of seconds and both the >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 40 and the >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 39 part is omitted when the offset is a whole number of minutes. For example, if >>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False 57 returns >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 45, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 76 is replaced with the string >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 47
Berubah di versi 3. 7. The UTC offset is not restricted to a whole number of minutes.
Changed in version 3. 7. When the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 76 directive is provided to the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 method, the UTC offsets can have a colon as a separator between hours, minutes and seconds. For example, >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 50 will be parsed as an offset of one hour. In addition, providing >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 51 is identical to >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 52.
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 78In >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 40, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 78 is replaced by an empty string if >>> from datetime import timedelta >>> year = timedelta(days=365) >>> ten_years = 10 * year >>> ten_years datetime.timedelta(days=3650) >>> ten_years.days // 365 10 >>> nine_years = ten_years - year >>> nine_years datetime.timedelta(days=3285) >>> three_years = nine_years // 3 >>> three_years, three_years.days // 365 (datetime.timedelta(days=1095), 3) 65 returns >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 03; otherwise >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 78 is replaced by the returned value, which must be a string
>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 only accepts certain values for >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 78
any value in >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 61 for your machine’s locale
the hard-coded values >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 62 and >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 63
So someone living in Japan may have >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 64, >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 62, and >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 63 as valid values, but probably not >>> from datetime import date >>> d = date(2002, 12, 31) >>> d.replace(day=26) datetime.date(2002, 12, 26) 67. It will raise >>> from datetime import timedelta >>> delta = timedelta( .. days=50, .. seconds=27, .. microseconds=10, .. milliseconds=29000, .. minutes=5, .. hours=8, .. weeks=2 .. ) >>> # Only days, seconds, and microseconds remain >>> delta datetime.timedelta(days=64, seconds=29156, microseconds=10) 93 for invalid values
Changed in version 3. 2. Saat direktif >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 76 diberikan ke metode >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41, objek sadar akan dihasilkan. The >>> delta2 > delta1 True >>> delta2 > 5 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'datetime.timedelta' and 'int' 4 of the result will be set to a instance.
When used with the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 method, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 80 and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 81 are only used in calculations when the day of the week and the calendar year (>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 69) are specified
Similar to >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 80 and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 81, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 88 is only used in calculations when the day of the week and the ISO year (>>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 87) are specified in a >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 format string. Also note that >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 87 and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 69 are not interchangeable
When used with the >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 41 method, the leading zero is optional for formats >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 64, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 67, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 70, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 71, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 73, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 74, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 79, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 80, >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 81, and >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 88. Format >>> from datetime import date >>> date.fromisoformat('2019-12-04') datetime.date(2019, 12, 4) >>> date.fromisoformat('20191204') datetime.date(2019, 12, 4) >>> date.fromisoformat('2021-W01-1') datetime.date(2021, 1, 4) 68 does require a leading zero
Footnotes
If, that is, we ignore the effects of Relativity
This matches the definition of the “proleptic Gregorian” calendar in Dershowitz and Reingold’s book Calendrical Calculations, where it’s the base calendar for all computations. See the book for algorithms for converting between proleptic Gregorian ordinals and many other calendar systems