Sementara aritmatika tanggal dan waktu didukung, fokus penerapannya adalah pada ekstraksi atribut yang efisien untuk pemformatan dan manipulasi output
Lihat juga
ModulGeneral calendar related functions
ModulTime access and conversions
ModulConcrete time zones representing the IANA time zone database
Penggunaan tanggal paketThird-party library with expanded time zone and parsing support
Aware and Naive Objects
Objek tanggal dan waktu dapat dikategorikan sebagai "sadar" atau "naif" bergantung pada apakah mereka menyertakan informasi zona waktu atau tidak
Dengan pengetahuan yang memadai tentang penyesuaian waktu algoritmik dan politik yang berlaku, seperti zona waktu dan informasi waktu musim panas, objek sadar dapat menempatkan dirinya relatif terhadap objek sadar lainnya. Objek sadar mewakili momen tertentu dalam waktu yang tidak terbuka untuk interpretasi.
Objek naif tidak berisi informasi yang cukup untuk menempatkan dirinya secara jelas relatif terhadap objek tanggal/waktu lainnya. Apakah objek naif mewakili Coordinated Universal Time (UTC), waktu lokal, atau waktu di beberapa zona waktu lain murni tergantung pada program, sama seperti program apakah angka tertentu mewakili meter, mil, atau massa. Objek naif mudah dipahami dan dikerjakan, dengan mengorbankan beberapa aspek realitas
Untuk aplikasi yang membutuhkan objek sadar, dan objek memiliki atribut informasi zona waktu opsional, >>> 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, yang dapat disetel ke turunan subkelas dari kelas abstrak. 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. MINYEARThe smallest year number allowed in a or object. is >>> # 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. MAXYEARThe largest year number allowed in a or object. is >>> # 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
datetime. UTCAlias for the UTC timezone singleton
New in version 3. 11
Available Types
class datetime. dateAn idealized naive date, assuming the current Gregorian calendar always was, and always will be, in effect. Attributes. , , and
class datetime. timeAn idealized time, independent of any particular day, assuming that every day has exactly 24*60*60 seconds. (There is no notion of “leap seconds” here. ) Attributes. , , , , and
class datetime. datetimeA combination of a date and a time. Attributes. , , , , , , , and
class datetime. timedeltaA duration expressing the difference between two , , or instances to microsecond resolution
class datetime. tzinfoAn abstract base class for time zone information objects. These are used by the and classes to provide a customizable notion of time adjustment (for example, to account for time zone and/or daylight saving time)
class datetime. timezoneA class that implements the abstract base class as a fixed offset from the UTC
New in version 3. 2
Objects of these types are immutable
Subclass relationships
object timedelta tzinfo timezone time date datetime
Common Properties
The , , , and types share these common features
Objects of these types are immutable
Objects of these types are hashable, meaning that they can be used as dictionary keys
Objects of these types support efficient pickling via the module
Determining if an Object is Aware or Naive
Objects of the type are always naive
An object of type or may be aware or naive
A object d is aware if both of the following hold
>>> 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 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
>>> 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 does not return >>> 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, d is naive
A object t is aware if both of the following hold
>>> 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 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
>>> 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 does not return >>> 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, t is naive
The distinction between aware and naive doesn’t apply to objects
Objects
A object represents a duration, the difference between two dates or times
kelas tanggal waktu. timedelta(days=0 , seconds=0 , microseconds=0 , milliseconds=0 , minutes=0 , hours=0 , weeks=0)All arguments are optional and default 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) 14. Arguments may be integers or floats, and may be positive or negative
Only days, seconds and microseconds are stored internally. Arguments are converted to those units
A millisecond is converted to 1000 microseconds
A minute is converted to 60 seconds
An hour is converted to 3600 seconds
A week is converted to 7 days
and days, seconds and microseconds are then normalized so that the representation is unique, 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) 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 (the number of seconds in one day)
>>> 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
The following example illustrates how any arguments besides days, seconds and microseconds are “merged” and normalized into those three resulting attributes
>>> 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)
If any argument is a float and there are fractional microseconds, the fractional microseconds left over from all arguments are combined and their sum is rounded to the nearest microsecond using round-half-to-even tiebreaker. If no argument is a float, the conversion and normalization processes are exact (no information is lost)
If the normalized value of days lies outside the indicated range, is raised
Note that normalization of negative values may be surprising at first. For example
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999)
Atribut kelas
timedelta. mntThe most negative object, >>> 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
timedelta. maxThe most positive object, >>> 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
timedelta. resolutionThe smallest possible difference between non-equal objects, >>> 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. _______________27 tidak dapat direpresentasikan sebagai objek
Atribut instance (hanya baca)
Atribut
Nilai
_______________2
Antara -999999999 dan 999999999 inklusif
_______________3
Antara 0 dan 86399 inklusif
_______________3
Antara 0 dan 999999 inklusif
Operasi yang didukung
Operasi
Hasil
_______________3
Jumlah t2 dan t3. Maka t1-t2 == t3 dan t1-t3 == t2 benar. (1)
_______________3
Difference of t2 and t3. Afterwards t1 == t2 - t3 and t2 == t1 + t3 are true. (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. Afterwards t1 // i == t2 is true, provided >>> 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
In general, t1 * i == t1 * (i-1) + t1 is true. (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 multiplied by a float. The result is rounded to the nearest multiple of timedelta. resolusi menggunakan putaran-setengah-ke-genap
_______________3
Pembagian (3) durasi keseluruhan t2 dengan satuan interval t3. Mengembalikan objek
_______________3
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) 4
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)
__________44
Menghitung hasil bagi dan sisanya. __________45 (3) dan __________4. q adalah bilangan bulat dan r adalah objek
__________48
Mengembalikan objek dengan nilai yang sama. (2)
_______________5
setara dengan (-t1. hari, -t1. detik , -t1. mikrodetik), dan ke t1* -1. (1)(4)
_______________5
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)
_______________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) 5. (5)
_______________5
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
-timeshare. 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
_______________
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 dalam versi. 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 , terlepas dari jenis objek yang dibandingkan
_______________
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 jenis yang berbeda, itu dinaikkan
_______________
Dalam konteks Boolean, sebuah objek dianggap benar jika dan hanya jika tidak sama dengan _______________83
Metode instan
jangka waktu. total_detik()Mengembalikan jumlah total detik yang terkandung dalam durasi. Setara 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) _84. Untuk satuan interval selain detik, gunakan bentuk pembagian secara langsung (mis. g. ___85)
Perhatikan bahwa untuk interval waktu yang sangat lama (lebih dari 270 tahun pada sebagian besar platform) metode ini akan kehilangan akurasi mikrodetik
New in version 3. 2
Contoh penggunaan.
Contoh tambahan normalisasi
_______________
Contoh aritmatika
_______________
Objects
Objek mewakili tanggal (tahun, bulan, dan hari) dalam kalender ideal, kalender Gregorian saat ini diperpanjang tanpa batas waktu di kedua arah
1 Januari tahun 1 disebut hari nomor 1, 2 Januari tahun 1 disebut hari nomor 2, dan seterusnya.
kelas tanggal waktu. date(year , month , day)Semua argumen diperlukan. Argumen harus berupa bilangan bulat, dalam rentang berikut
_______________90
_______________91
___9
Jika argumen di luar rentang tersebut diberikan, itu akan dimunculkan
Konstruktor lain, semua metode kelas
metode kelas tanggal. hari ini()Mengembalikan tanggal lokal saat ini
Ini setara 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) _9
metode kelas tanggal. fromtimestamp(timestamp)Kembalikan tanggal lokal yang sesuai dengan stempel waktu POSIX
Ini dapat meningkat , jika stempel waktu berada di luar rentang nilai yang didukung oleh fungsi 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, dan pada kegagalan >>> 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. Biasanya hal ini dibatasi pada tahun-tahun dari tahun 1970 hingga. Perhatikan bahwa pada sistem non-POSIX yang menyertakan detik kabisat dalam gagasannya tentang stempel waktu, detik kabisat diabaikan oleh
Berubah dalam versi. 3. Naikkan alih-alih jika stempel waktu berada di luar rentang nilai yang didukung oleh fungsi 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. Naikkan alih-alih pada >>> 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 kegagalan.
metode kelas tanggal. dariordinal(ordinal)Mengembalikan tanggal yang sesuai dengan ordinal Gregorian
dinaikkan kecuali >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _08. Untuk tanggal apa pun, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _0
metode kelas tanggal. fromisoformat(date_string)Mengembalikan date_string terkait yang diberikan dalam format ISO 8601 yang valid, kecuali tanggal ordinal (mis. g. >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _11)
_______________
Baru dalam versi. 7
Berubah dalam versi. 11. Sebelumnya, metode ini hanya mendukung format >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 1.
metode kelas tanggal. dari isocalendar(tahun , minggu , hari)Mengembalikan tanggal kalender ISO terkait yang ditentukan berdasarkan tahun, minggu, dan hari. Ini adalah kebalikan dari fungsi
Baru dalam versi. 8
Atribut kelas
kencan. mntTanggal paling awal yang dapat diwakili, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _15
kencan. maksTanggal perwakilan terakhir, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 1
kencan. resolusiPerbedaan sekecil mungkin antara objek tanggal yang tidak sama, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 1
Atribut instance (hanya baca)
kencan. tahunAntara dan inklusif
kencan. bulanAntara 1 dan 12 inklusif
kencan. hariBetween 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) 2
tanggal2 akan menjadi >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _21 hari setelah tanggal1. (1)
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 2
Menghitung tanggal2 sehingga >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 2. (2)
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 2
(3)
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 2
date1 dianggap kurang dari date2 saat date1 mendahului date2 dalam waktu. (4)
Catatan
date2 bergerak maju dalam waktu jika >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 26, atau mundur jika >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 2. Setelah itu >>> 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 dan >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 30 diabaikan. dinaikkan jika >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _32 akan lebih kecil dari atau lebih besar dari
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 29 dan >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 30 diabaikan
Ini tepat, dan tidak bisa meluap. timeshare. detik dan slot 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) 3. 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, itu dinaikkan 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
Metode instan
kencan. ganti(tahun=diri. tahun , bulan=diri. bulan , hari=diri. hari)Mengembalikan tanggal dengan nilai yang sama, kecuali untuk parameter yang diberi nilai baru dengan argumen kata kunci mana pun yang ditentukan
Contoh
_______________100
kencan. jadwal()Kembalikan seperti yang dikembalikan oleh
Bendera DST adalah -1 Bendera DST adalah -1
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 52 setara dengan
_______________0
di mana >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _53 adalah jumlah hari dalam tahun berjalan yang 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
kencan. toordinal()Mengembalikan ordinal ordinal Gregorian untuk Januari. Untuk objek d, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 0
kencan. hari kerja()Mengembalikan hari dalam seminggu sebagai bilangan bulat, di mana Senin adalah 0 dan Minggu adalah. Misalnya, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _57, hari Rabu. Lihat juga
kencan. adalah hari kerja()Mengembalikan hari dalam seminggu sebagai bilangan bulat, di mana Senin adalah 1 dan Minggu adalah. Misalnya, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _59, hari Rabu. Lihat juga ,
kencan. isokalendar()Mengembalikan objek 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 dan >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 6
Kalender ISO adalah varian kalender Gregorian yang banyak digunakan.
Tahun ISO terdiri dari 52 atau 53 minggu penuh, dan satu minggu dimulai pada hari Senin dan berakhir pada hari Minggu. Minggu pertama tahun ISO adalah minggu kalender pertama (Gregorian) dalam setahun yang berisi hari Kamis. Ini disebut minggu nomor 1, dan tahun ISO pada hari Kamis itu sama dengan tahun Gregoriannya
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
_______________1
Berubah dalam versi. 9. Hasil diubah dari tuple menjadi a.
kencan. isoformat()Kembalikan string yang mewakili tanggal dalam format ISO 8601, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 1
_______________2
kencan. __str__()Untuk tanggal d, >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _66 setara dengan >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 6
kencan. waktu()Mengembalikan string yang mewakili tanggal
_______________3
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 68 setara dengan
___4
pada platform di mana fungsi C >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) _69 asli (yang memanggil, tetapi yang tidak memanggil) sesuai dengan standar C
kencan. strftime(format)Mengembalikan string yang mewakili tanggal, dikontrol oleh string format eksplisit. Kode format yang mengacu pada jam, menit, atau detik akan melihat nilai 0. Untuk daftar lengkap arahan pemformatan, lihat
kencan. __format__(format)Sama dengan. Ini memungkinkan untuk menentukan string format untuk objek di dalam dan saat menggunakan. Untuk daftar lengkap arahan pemformatan, lihat
Contoh Penggunaan.
Contoh menghitung hari untuk suatu acara
_______________5
Lebih banyak contoh bekerja dengan
_______________6
Objects
Objek adalah objek tunggal yang berisi semua informasi dari objek dan objek
Seperti sebuah objek, ini mengasumsikan kalender Gregorian saat ini diperpanjang di kedua arah;
Pembangun
kelas tanggal waktu. tanggal waktu(tahun , bulan , hari , jam= 0 , menit=0 , detik=0 , mikrodetik=0 , tzinfo =Tidak ada , * , lipat=0)Argumen tahun, bulan, dan hari diperlukan. 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. Argumen yang tersisa harus berupa bilangan bulat dalam rentang berikut
___90,
_______________91,
_______________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
Jika argumen di luar rentang tersebut diberikan, itu akan dimunculkan
Baru dalam versi. 6. Menambahkan >>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 96 argumen.
Konstruktor lain, semua metode kelas
metode kelas tanggal waktu. hari ini()Kembalikan datetime lokal saat ini
Setara dengan
_______________7
Lihat juga ,
Metode ini secara fungsional setara dengan , tetapi tanpa parameter >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 02
metode kelas tanggal waktu. sekarang(tz=Tidak ada )Mengembalikan tanggal dan waktu lokal saat ini
Jika argumen opsional tz 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 tidak ditentukan, ini seperti , tetapi, jika mungkin, memberikan lebih banyak presisi daripada yang bisa didapat dari melewati stempel waktu.
Jika tz 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, itu harus merupakan turunan dari subkelas, dan tanggal dan waktu saat ini dikonversi ke zona waktu tz
Fungsi ini lebih disukai daripada dan
metode kelas tanggal waktu. utcnow()Mengembalikan tanggal dan waktu saat ini
Ini seperti , tetapi mengembalikan tanggal dan waktu UTC saat ini, sebagai objek yang naif. Tanggal waktu UTC yang diketahui saat ini dapat diperoleh dengan menelepon >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 15. Lihat juga
Peringatan
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. Dengan demikian, cara yang disarankan untuk membuat objek yang mewakili waktu saat ini di UTC adalah dengan memanggil _______________1
metode kelas tanggal waktu. fromtimestamp(timestamp , tz =Tidak ada)Mengembalikan tanggal dan waktu lokal yang sesuai dengan stempel waktu POSIX. Jika argumen opsional tz 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 tidak ditentukan, stempel waktu diubah menjadi tanggal dan waktu lokal platform, dan objek yang dikembalikan naif
Jika tz 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, itu harus merupakan turunan dari subkelas, dan stempel waktu diubah menjadi zona waktu tz
dapat meningkat , jika stempel waktu berada di luar rentang nilai yang didukung oleh fungsi 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 atau >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28, dan pada kegagalan. Biasanya ini dibatasi pada tahun 1970 sampai. Perhatikan bahwa pada sistem non-POSIX yang menyertakan detik kabisat dalam gagasannya tentang stempel waktu, detik kabisat diabaikan oleh , dan kemudian dimungkinkan untuk memiliki dua stempel waktu yang berbeda satu detik yang menghasilkan objek yang identik. Metode ini lebih disukai
Berubah dalam versi. 3. Naikkan alih-alih jika stempel waktu berada di luar rentang nilai yang didukung oleh 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 atau >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 fungsi. Menaikkan bukan pada >>> 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 atau >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28 kegagalan.
Berubah dalam versi. 6. dapat mengembalikan instance dengan disetel ke.
metode kelas tanggal waktu. outfromtimestamp(timestamp)Kembalikan UTC yang sesuai dengan stempel waktu POSIX. (Objek yang dihasilkan naif. )
Ini dapat meningkat , jika stempel waktu berada di luar rentang nilai yang didukung oleh fungsi platform C _________________28, dan pada kegagalan ______________________28. Biasanya ini dibatasi pada tahun 1970 sampai
Untuk memiliki objek yang sadar, panggil
_______________8
Pada platform yang sesuai dengan POSIX, ini setara dengan ekspresi berikut
___9
kecuali formula terakhir selalu mendukung rentang tahun penuh. antara dan inklusif
Peringatan
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. Dengan demikian, cara yang disarankan untuk membuat objek yang mewakili stempel waktu tertentu di UTC adalah dengan memanggil _______________58
Berubah dalam versi. 3. Naikkan alih-alih jika stempel waktu berada di luar rentang nilai yang didukung oleh fungsi platform C >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 28. Naikkan bukannya pada >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _28 kegagalan.
metode kelas tanggal waktu. dariordinal(ordinal)Kembalikan kalender ordinal Gregorian yang sesuai. dinaikkan kecuali >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _67. Jam, menit, detik, dan mikrodetik hasilnya semuanya 0, 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) 0
metode kelas tanggal waktu. gabungkan(tanggal , waktu , tzinfo=diri sendiri. tzinfo)Mengembalikan objek baru yang komponen tanggalnya sama dengan objek yang diberikan, dan komponen waktunya sama dengan objek yang diberikan. Jika argumen tzinfo disediakan, nilainya digunakan untuk mengatur atribut hasil, jika tidak, atribut argumen waktu digunakan
Untuk objek d, >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _7. Jika tanggal adalah objek, komponen waktu dan atributnya diabaikan
Berubah dalam versi. 6. Menambahkan argumen tzinfo.
metode kelas tanggal waktu. fromisoformat(date_string)Mengembalikan date_string yang sesuai dalam format ISO 8601 yang valid, dengan pengecualian berikut
Offset zona waktu mungkin memiliki pecahan detik
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
Tanggal ordinal saat ini tidak didukung
Pecahan jam dan menit tidak didukung
Contoh
>>> from datetime import timedelta >>> d = timedelta(microseconds=-1) >>> (d.days, d.seconds, d.microseconds) (-1, 86399, 999999) 0
Baru dalam versi. 7
Berubah dalam versi. 11. Sebelumnya, metode ini hanya mendukung format yang dapat dipancarkan oleh atau.
metode kelas tanggal waktu. dari isocalendar(tahun , minggu , hari)Mengembalikan tanggal kalender ISO terkait yang ditentukan berdasarkan tahun, minggu, dan hari. Komponen non-tanggal dari datetime diisi dengan nilai default normalnya. Ini adalah kebalikan dari fungsi
Baru dalam versi. 8
metode kelas tanggal waktu. strptime(date_string , format )Kembalikan date_string yang sesuai, 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 tuple waktu. Untuk daftar lengkap arahan pemformatan, lihat
Atribut kelas
waktu. mntTerwakili paling awal , >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 8
waktu. maksPerwakilan terbaru, >>> timedelta(hours=-5) datetime.timedelta(days=-1, seconds=68400) >>> print(_) -1 day, 19:00:00 _9
waktu. resolusiThe smallest possible difference between non-equal objects, >>> 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. tahunAntara dan inklusif
waktu. bulanAntara 1 dan 12 inklusif
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 0. 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 diturunkan karena alasan politik). ) Nilai 0 (1) mewakili dua momen awal (kemudian) dengan representasi waktu dinding yang sama
Baru dalam versi. 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 _0
(3)
>>> from datetime import timedelta >>> delta1 = timedelta(seconds=57) >>> delta2 = timedelta(hours=25, seconds=2) >>> delta2 != delta1 True >>> delta2 == 5 False _06
Compares to . (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 = 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
Unlike the module, the module does not support leap seconds
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) 75 directive accepts from one to six digits and zero pads on the right. >>> 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
Untuk objek sadar
>>> 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 dalam versi. 7. Offset UTC tidak terbatas pada jumlah menit penuh.
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. 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, an aware object will be produced. 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