parthtamu/rag-code-assistant
0
1<!DOCTYPE html>2 3<html lang="en" data-content_root="../">4 <head>5 <meta charset="utf-8" />6 <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />7<meta property="og:title" content="datetime — Basic date and time types" />8<meta property="og:type" content="website" />9<meta property="og:url" content="https://docs.python.org/3/library/datetime.html" />10<meta property="og:site_name" content="Python documentation" />11<meta property="og:description" content="Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr..." />12<meta property="og:image:width" content="1146" />13<meta property="og:image:height" content="600" />14<meta property="og:image" content="https://docs.python.org/3.15/_images/social_previews/summary_library_datetime_10a58798.png" />15<meta property="og:image:alt" content="Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr..." />16<meta name="description" content="Source code: Lib/datetime.py The datetime module supplies classes for manipulating dates and times. While date and time arithmetic is supported, the focus of the implementation is on efficient attr..." />17<meta name="twitter:card" content="summary_large_image" />18<meta name="theme-color" content="#3776ab">19 20 <title>datetime — Basic date and time types — Python 3.15.0a6 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">21 22 <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />23 <link rel="stylesheet" type="text/css" href="../_static/classic.css?v=234b1a7c" />24 <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=89a2f22a" />25 <link rel="stylesheet" type="text/css" href="../_static/profiling-sampling-visualization.css?v=0c2600ae" />26 <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />27 28 <script src="../_static/documentation_options.js?v=6b7c9ff5"></script>29 <script src="../_static/doctools.js?v=9bcbadda"></script>30 <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>31 <script src="../_static/profiling-sampling-visualization.js?v=9811ed04"></script>32 33 <script src="../_static/sidebar.js"></script>34 35 <link rel="search" type="application/opensearchdescription+xml"36 title="Search within Python 3.15.0a6 documentation"37 href="../_static/opensearch.xml"/>38 <link rel="author" title="About these documents" href="../about.html" />39 <link rel="index" title="Index" href="../genindex.html" />40 <link rel="search" title="Search" href="../search.html" />41 <link rel="copyright" title="Copyright" href="../copyright.html" />42 <link rel="next" title="zoneinfo — IANA time zone support" href="zoneinfo.html" />43 <link rel="prev" title="Data Types" href="datatypes.html" />44 45 46 <script defer file-types="bz2,epub,zip" data-domain="docs.python.org" src="https://analytics.python.org/js/script.file-downloads.outbound-links.js"></script>47 48 <link rel="canonical" href="https://docs.python.org/3/library/datetime.html">49 50 51 52 53 <style>54 @media only screen {55 table.full-width-table {56 width: 100%;57 }58 }59 </style>60<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">61 <link rel="shortcut icon" type="image/png" href="../_static/py.svg">62 <script type="text/javascript" src="../_static/copybutton.js"></script>63 <script type="text/javascript" src="../_static/menu.js"></script>64 <script type="text/javascript" src="../_static/search-focus.js"></script>65 <script type="text/javascript" src="../_static/themetoggle.js"></script> 66 <script type="text/javascript" src="../_static/rtd_switcher.js"></script>67 <meta name="readthedocs-addons-api-version" content="1">68 69 </head>70<body>71<div class="mobile-nav">72 <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"73 aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu">74 <nav class="nav-content" role="navigation">75 <label for="menuToggler" class="toggler__label">76 <span></span>77 </label>78 <span class="nav-items-wrapper">79 <a href="https://www.python.org/" class="nav-logo">80 <img src="../_static/py.svg" alt="Python logo">81 </a>82 <span class="version_switcher_placeholder"></span>83 <form role="search" class="search" action="../search.html" method="get">84 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">85 <path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>86 </svg>87 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q">88 <input type="submit" value="Go">89 </form>90 </span>91 </nav>92 <div class="menu-wrapper">93 <nav class="menu" role="navigation" aria-label="main navigation">94 <div class="language_switcher_placeholder"></div>95 96<label class="theme-selector-label">97 Theme98 <select class="theme-selector" oninput="activateTheme(this.value)">99 <option value="auto" selected>Auto</option>100 <option value="light">Light</option>101 <option value="dark">Dark</option>102 </select>103</label>104 <div>105 <h3><a href="../contents.html">Table of Contents</a></h3>106 <ul>107<li><a class="reference internal" href="#"><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code> — Basic date and time types</a><ul>108<li><a class="reference internal" href="#aware-and-naive-objects">Aware and naive objects</a></li>109<li><a class="reference internal" href="#constants">Constants</a></li>110<li><a class="reference internal" href="#available-types">Available types</a><ul>111<li><a class="reference internal" href="#common-properties">Common properties</a></li>112<li><a class="reference internal" href="#determining-if-an-object-is-aware-or-naive">Determining if an object is aware or naive</a></li>113</ul>114</li>115<li><a class="reference internal" href="#timedelta-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code> objects</a><ul>116<li><a class="reference internal" href="#examples-of-usage-timedelta">Examples of usage: <code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a></li>117</ul>118</li>119<li><a class="reference internal" href="#date-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code> objects</a><ul>120<li><a class="reference internal" href="#examples-of-usage-date">Examples of usage: <code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a></li>121</ul>122</li>123<li><a class="reference internal" href="#datetime-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> objects</a><ul>124<li><a class="reference internal" href="#examples-of-usage-datetime">Examples of usage: <code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a></li>125</ul>126</li>127<li><a class="reference internal" href="#time-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code> objects</a><ul>128<li><a class="reference internal" href="#examples-of-usage-time">Examples of usage: <code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a></li>129</ul>130</li>131<li><a class="reference internal" href="#tzinfo-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">tzinfo</span></code> objects</a></li>132<li><a class="reference internal" href="#timezone-objects"><code class="xref py py-class docutils literal notranslate"><span class="pre">timezone</span></code> objects</a></li>133<li><a class="reference internal" href="#strftime-and-strptime-behavior"><code class="xref py py-meth docutils literal notranslate"><span class="pre">strftime()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">strptime()</span></code> behavior</a><ul>134<li><a class="reference internal" href="#strftime-and-strptime-format-codes"><code class="xref py py-meth docutils literal notranslate"><span class="pre">strftime()</span></code> and <code class="xref py py-meth docutils literal notranslate"><span class="pre">strptime()</span></code> format codes</a></li>135<li><a class="reference internal" href="#technical-detail">Technical detail</a></li>136</ul>137</li>138</ul>139</li>140</ul>141 142 </div>143 <div>144 <h4>Previous topic</h4>145 <p class="topless"><a href="datatypes.html"146 title="previous chapter">Data Types</a></p>147 </div>148 <div>149 <h4>Next topic</h4>150 <p class="topless"><a href="zoneinfo.html"151 title="next chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code> — IANA time zone support</a></p>152 </div>153 <script>154 document.addEventListener('DOMContentLoaded', () => {155 const title = document.querySelector('meta[property="og:title"]').content;156 const elements = document.querySelectorAll('.improvepage');157 const pageurl = window.location.href.split('?')[0];158 elements.forEach(element => {159 const url = new URL(element.href.split('?')[0].replace("-nojs", ""));160 url.searchParams.set('pagetitle', title);161 url.searchParams.set('pageurl', pageurl);162 url.searchParams.set('pagesource', "library/datetime.rst");163 element.href = url.toString();164 });165 });166 </script>167 <div role="note" aria-label="source link">168 <h3>This page</h3>169 <ul class="this-page-menu">170 <li><a href="../bugs.html">Report a bug</a></li>171 <li><a class="improvepage" href="../improve-page-nojs.html">Improve this page</a></li>172 <li>173 <a href="https://github.com/python/cpython/blob/main/Doc/library/datetime.rst?plain=1"174 rel="nofollow">Show source175 </a>176 </li>177 178 </ul>179 </div>180 </nav>181 </div>182</div>183 184 185 <div class="related" role="navigation" aria-label="Related">186 <h3>Navigation</h3>187 <ul>188 <li class="right" style="margin-right: 10px">189 <a href="../genindex.html" title="General Index"190 accesskey="I">index</a></li>191 <li class="right" >192 <a href="../py-modindex.html" title="Python Module Index"193 >modules</a> |</li>194 <li class="right" >195 <a href="zoneinfo.html" title="zoneinfo — IANA time zone support"196 accesskey="N">next</a> |</li>197 <li class="right" >198 <a href="datatypes.html" title="Data Types"199 accesskey="P">previous</a> |</li>200 201 <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"></li>202 <li><a href="https://www.python.org/">Python</a> »</li>203 <li class="switchers">204 <div class="language_switcher_placeholder"></div>205 <div class="version_switcher_placeholder"></div>206 </li>207 <li>208 209 </li>210 <li id="cpython-language-and-version">211 <a href="../index.html">3.15.0a6 Documentation</a> »212 </li>213 214 <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> »</li>215 <li class="nav-item nav-item-2"><a href="datatypes.html" accesskey="U">Data Types</a> »</li>216 <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code> — Basic date and time types</a></li>217 <li class="right">218 219 220 <div class="inline-search" role="search">221 <form class="inline-search" action="../search.html" method="get">222 <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box">223 <input type="submit" value="Go">224 </form>225 </div>226 |227 </li>228 <li class="right">229<label class="theme-selector-label">230 Theme231 <select class="theme-selector" oninput="activateTheme(this.value)">232 <option value="auto" selected>Auto</option>233 <option value="light">Light</option>234 <option value="dark">Dark</option>235 </select>236</label> |</li>237 238 </ul>239 </div> 240 241 <div class="document">242 <div class="documentwrapper">243 <div class="bodywrapper">244 <div class="body" role="main">245 246 <section id="module-datetime">247<span id="datetime-basic-date-and-time-types"></span><h1><code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code> — Basic date and time types<a class="headerlink" href="#module-datetime" title="Link to this heading">¶</a></h1>248<p><strong>Source code:</strong> <a class="extlink-source reference external" href="https://github.com/python/cpython/tree/main/Lib/datetime.py">Lib/datetime.py</a></p>249<hr class="docutils" />250<p>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code> module supplies classes for manipulating dates and times.</p>251<p>While date and time arithmetic is supported, the focus of the implementation is252on efficient attribute extraction for output formatting and manipulation.</p>253<div class="admonition tip">254<p class="admonition-title">Tip</p>255<p>Skip to <a class="reference internal" href="#format-codes"><span class="std std-ref">the format codes</span></a>.</p>256</div>257<div class="admonition seealso">258<p class="admonition-title">See also</p>259<dl class="simple">260<dt>Module <a class="reference internal" href="calendar.html#module-calendar" title="calendar: Functions for working with calendars, including some emulation of the Unix cal program."><code class="xref py py-mod docutils literal notranslate"><span class="pre">calendar</span></code></a></dt><dd><p>General calendar related functions.</p>261</dd>262<dt>Module <a class="reference internal" href="time.html#module-time" title="time: Time access and conversions."><code class="xref py py-mod docutils literal notranslate"><span class="pre">time</span></code></a></dt><dd><p>Time access and conversions.</p>263</dd>264<dt>Module <a class="reference internal" href="zoneinfo.html#module-zoneinfo" title="zoneinfo: IANA time zone support"><code class="xref py py-mod docutils literal notranslate"><span class="pre">zoneinfo</span></code></a></dt><dd><p>Concrete time zones representing the IANA time zone database.</p>265</dd>266<dt>Package <a class="reference external" href="https://dateutil.readthedocs.io/en/stable/">dateutil</a></dt><dd><p>Third-party library with expanded time zone and parsing support.</p>267</dd>268<dt>Package <a class="extlink-pypi reference external" href="https://pypi.org/project/DateType/">DateType</a></dt><dd><p>Third-party library that introduces distinct static types to for example,269allow <a class="reference internal" href="../glossary.html#term-static-type-checker"><span class="xref std std-term">static type checkers</span></a>270to differentiate between naive and aware datetimes.</p>271</dd>272</dl>273</div>274<section id="aware-and-naive-objects">275<span id="datetime-naive-aware"></span><h2>Aware and naive objects<a class="headerlink" href="#aware-and-naive-objects" title="Link to this heading">¶</a></h2>276<p>Date and time objects may be categorized as “aware” or “naive” depending on277whether or not they include time zone information.</p>278<p>With sufficient knowledge of applicable algorithmic and political time279adjustments, such as time zone and daylight saving time information,280an <strong>aware</strong> object can locate itself relative to other aware objects.281An aware object represents a specific moment in time that is not open to282interpretation. <a class="footnote-reference brackets" href="#id4" id="id1" role="doc-noteref"><span class="fn-bracket">[</span>1<span class="fn-bracket">]</span></a></p>283<p>A <strong>naive</strong> object does not contain enough information to unambiguously locate284itself relative to other date/time objects. Whether a naive object represents285Coordinated Universal Time (UTC), local time, or time in some other time zone is286purely up to the program, just like it is up to the program whether a287particular number represents metres, miles, or mass. Naive objects are easy to288understand and to work with, at the cost of ignoring some aspects of reality.</p>289<p>For applications requiring aware objects, <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> and <a class="reference internal" href="#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a>290objects have an optional time zone information attribute, <code class="xref py py-attr docutils literal notranslate"><span class="pre">tzinfo</span></code>, that291can be set to an instance of a subclass of the abstract <code class="xref py py-class docutils literal notranslate"><span class="pre">tzinfo</span></code> class.292These <a class="reference internal" href="#datetime.tzinfo" title="datetime.tzinfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">tzinfo</span></code></a> objects capture information about the offset from UTC293time, the time zone name, and whether daylight saving time is in effect.</p>294<p>Only one concrete <a class="reference internal" href="#datetime.tzinfo" title="datetime.tzinfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">tzinfo</span></code></a> class, the <a class="reference internal" href="#datetime.timezone" title="datetime.timezone"><code class="xref py py-class docutils literal notranslate"><span class="pre">timezone</span></code></a> class, is295supplied by the <code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code> module. The <code class="xref py py-class docutils literal notranslate"><span class="pre">timezone</span></code> class can296represent simple time zones with fixed offsets from UTC, such as UTC itself or297North American EST and EDT time zones. Supporting time zones at deeper levels of298detail is up to the application. The rules for time adjustment across the299world are more political than rational, change frequently, and there is no300standard suitable for every application aside from UTC.</p>301</section>302<section id="constants">303<h2>Constants<a class="headerlink" href="#constants" title="Link to this heading">¶</a></h2>304<p>The <code class="xref py py-mod docutils literal notranslate"><span class="pre">datetime</span></code> module exports the following constants:</p>305<dl class="py data">306<dt class="sig sig-object py" id="datetime.MINYEAR">307<span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">MINYEAR</span></span><a class="headerlink" href="#datetime.MINYEAR" title="Link to this definition">¶</a></dt>308<dd><p>The smallest year number allowed in a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> or <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> object.309<a class="reference internal" href="#datetime.MINYEAR" title="datetime.MINYEAR"><code class="xref py py-const docutils literal notranslate"><span class="pre">MINYEAR</span></code></a> is 1.</p>310</dd></dl>311 312<dl class="py data">313<dt class="sig sig-object py" id="datetime.MAXYEAR">314<span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">MAXYEAR</span></span><a class="headerlink" href="#datetime.MAXYEAR" title="Link to this definition">¶</a></dt>315<dd><p>The largest year number allowed in a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> or <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> object.316<a class="reference internal" href="#datetime.MAXYEAR" title="datetime.MAXYEAR"><code class="xref py py-const docutils literal notranslate"><span class="pre">MAXYEAR</span></code></a> is 9999.</p>317</dd></dl>318 319<dl class="py data">320<dt class="sig sig-object py" id="datetime.UTC">321<span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">UTC</span></span><a class="headerlink" href="#datetime.UTC" title="Link to this definition">¶</a></dt>322<dd><p>Alias for the UTC time zone singleton <a class="reference internal" href="#datetime.timezone.utc" title="datetime.timezone.utc"><code class="xref py py-attr docutils literal notranslate"><span class="pre">datetime.timezone.utc</span></code></a>.</p>323<div class="versionadded">324<p><span class="versionmodified added">Added in version 3.11.</span></p>325</div>326</dd></dl>327 328</section>329<section id="available-types">330<h2>Available types<a class="headerlink" href="#available-types" title="Link to this heading">¶</a></h2>331<dl class="py class">332<dt class="sig sig-object py">333<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">date</span></span></dt>334<dd><p>An idealized naive date, assuming the current Gregorian calendar always was, and335always will be, in effect. Attributes: <a class="reference internal" href="#datetime.date.year" title="datetime.date.year"><code class="xref py py-attr docutils literal notranslate"><span class="pre">year</span></code></a>, <a class="reference internal" href="#datetime.date.month" title="datetime.date.month"><code class="xref py py-attr docutils literal notranslate"><span class="pre">month</span></code></a>, and336<a class="reference internal" href="#datetime.date.day" title="datetime.date.day"><code class="xref py py-attr docutils literal notranslate"><span class="pre">day</span></code></a>.</p>337</dd></dl>338 339<dl class="py class">340<dt class="sig sig-object py">341<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">time</span></span></dt>342<dd><p>An idealized time, independent of any particular day, assuming that every day343has exactly 24*60*60 seconds. (There is no notion of “leap seconds” here.)344Attributes: <a class="reference internal" href="#datetime.time.hour" title="datetime.time.hour"><code class="xref py py-attr docutils literal notranslate"><span class="pre">hour</span></code></a>, <a class="reference internal" href="#datetime.time.minute" title="datetime.time.minute"><code class="xref py py-attr docutils literal notranslate"><span class="pre">minute</span></code></a>, <a class="reference internal" href="#datetime.time.second" title="datetime.time.second"><code class="xref py py-attr docutils literal notranslate"><span class="pre">second</span></code></a>, <a class="reference internal" href="#datetime.time.microsecond" title="datetime.time.microsecond"><code class="xref py py-attr docutils literal notranslate"><span class="pre">microsecond</span></code></a>,345and <a class="reference internal" href="#datetime.time.tzinfo" title="datetime.time.tzinfo"><code class="xref py py-attr docutils literal notranslate"><span class="pre">tzinfo</span></code></a>.</p>346</dd></dl>347 348<dl class="py class">349<dt class="sig sig-object py">350<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">datetime</span></span></dt>351<dd><p>A combination of a date and a time. Attributes: <a class="reference internal" href="#datetime.datetime.year" title="datetime.datetime.year"><code class="xref py py-attr docutils literal notranslate"><span class="pre">year</span></code></a>, <a class="reference internal" href="#datetime.datetime.month" title="datetime.datetime.month"><code class="xref py py-attr docutils literal notranslate"><span class="pre">month</span></code></a>,352<a class="reference internal" href="#datetime.datetime.day" title="datetime.datetime.day"><code class="xref py py-attr docutils literal notranslate"><span class="pre">day</span></code></a>, <a class="reference internal" href="#datetime.datetime.hour" title="datetime.datetime.hour"><code class="xref py py-attr docutils literal notranslate"><span class="pre">hour</span></code></a>, <a class="reference internal" href="#datetime.datetime.minute" title="datetime.datetime.minute"><code class="xref py py-attr docutils literal notranslate"><span class="pre">minute</span></code></a>, <a class="reference internal" href="#datetime.datetime.second" title="datetime.datetime.second"><code class="xref py py-attr docutils literal notranslate"><span class="pre">second</span></code></a>, <a class="reference internal" href="#datetime.datetime.microsecond" title="datetime.datetime.microsecond"><code class="xref py py-attr docutils literal notranslate"><span class="pre">microsecond</span></code></a>,353and <a class="reference internal" href="#datetime.datetime.tzinfo" title="datetime.datetime.tzinfo"><code class="xref py py-attr docutils literal notranslate"><span class="pre">tzinfo</span></code></a>.</p>354</dd></dl>355 356<dl class="py class">357<dt class="sig sig-object py">358<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">timedelta</span></span></dt>359<dd><p>A duration expressing the difference between two <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a>360or <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> instances to microsecond resolution.</p>361</dd></dl>362 363<dl class="py class">364<dt class="sig sig-object py">365<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">tzinfo</span></span></dt>366<dd><p>An abstract base class for time zone information objects. These are used by the367<a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> and <a class="reference internal" href="#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a> classes to provide a customizable notion of368time adjustment (for example, to account for time zone and/or daylight saving369time).</p>370</dd></dl>371 372<dl class="py class">373<dt class="sig sig-object py">374<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">timezone</span></span></dt>375<dd><p>A class that implements the <a class="reference internal" href="#datetime.tzinfo" title="datetime.tzinfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">tzinfo</span></code></a> abstract base class as a376fixed offset from the UTC.</p>377<div class="versionadded">378<p><span class="versionmodified added">Added in version 3.2.</span></p>379</div>380</dd></dl>381 382<p>Objects of these types are immutable.</p>383<p>Subclass relationships:</p>384<figure class="align-center">385<img alt="timedelta, tzinfo, time, and date inherit from object; timezone inherits from tzinfo; and datetime inherits from date." class="invert-in-dark-mode" src="../_images/datetime-inheritance.svg" />386</figure>387<section id="common-properties">388<h3>Common properties<a class="headerlink" href="#common-properties" title="Link to this heading">¶</a></h3>389<p>The <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a>, <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a>, <a class="reference internal" href="#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a>, and <a class="reference internal" href="#datetime.timezone" title="datetime.timezone"><code class="xref py py-class docutils literal notranslate"><span class="pre">timezone</span></code></a> types390share these common features:</p>391<ul class="simple">392<li><p>Objects of these types are immutable.</p></li>393<li><p>Objects of these types are <a class="reference internal" href="../glossary.html#term-hashable"><span class="xref std std-term">hashable</span></a>, meaning that they can be used as394dictionary keys.</p></li>395<li><p>Objects of these types support efficient pickling via the <a class="reference internal" href="pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a> module.</p></li>396</ul>397</section>398<section id="determining-if-an-object-is-aware-or-naive">399<h3>Determining if an object is aware or naive<a class="headerlink" href="#determining-if-an-object-is-aware-or-naive" title="Link to this heading">¶</a></h3>400<p>Objects of the <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> type are always naive.</p>401<p>An object of type <a class="reference internal" href="#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a> or <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> may be aware or naive.</p>402<p>A <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> object <code class="docutils literal notranslate"><span class="pre">d</span></code> is aware if both of the following hold:</p>403<ol class="arabic simple">404<li><p><code class="docutils literal notranslate"><span class="pre">d.tzinfo</span></code> is not <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>405<li><p><code class="docutils literal notranslate"><span class="pre">d.tzinfo.utcoffset(d)</span></code> does not return <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>406</ol>407<p>Otherwise, <code class="docutils literal notranslate"><span class="pre">d</span></code> is naive.</p>408<p>A <a class="reference internal" href="#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a> object <code class="docutils literal notranslate"><span class="pre">t</span></code> is aware if both of the following hold:</p>409<ol class="arabic simple">410<li><p><code class="docutils literal notranslate"><span class="pre">t.tzinfo</span></code> is not <code class="docutils literal notranslate"><span class="pre">None</span></code></p></li>411<li><p><code class="docutils literal notranslate"><span class="pre">t.tzinfo.utcoffset(None)</span></code> does not return <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p></li>412</ol>413<p>Otherwise, <code class="docutils literal notranslate"><span class="pre">t</span></code> is naive.</p>414<p>The distinction between aware and naive doesn’t apply to <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a>415objects.</p>416</section>417</section>418<section id="timedelta-objects">419<span id="datetime-timedelta"></span><h2><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code> objects<a class="headerlink" href="#timedelta-objects" title="Link to this heading">¶</a></h2>420<p>A <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object represents a duration, the difference between two421<a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> or <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> instances.</p>422<dl class="py class">423<dt class="sig sig-object py" id="datetime.timedelta">424<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">timedelta</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">days</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">seconds</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">microseconds</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">milliseconds</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">minutes</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hours</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">weeks</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.timedelta" title="Link to this definition">¶</a></dt>425<dd><p>All arguments are optional and default to 0. Arguments may be integers426or floats, and may be positive or negative.</p>427<p>Only <em>days</em>, <em>seconds</em> and <em>microseconds</em> are stored internally.428Arguments are converted to those units:</p>429<ul class="simple">430<li><p>A millisecond is converted to 1000 microseconds.</p></li>431<li><p>A minute is converted to 60 seconds.</p></li>432<li><p>An hour is converted to 3600 seconds.</p></li>433<li><p>A week is converted to 7 days.</p></li>434</ul>435<p>and days, seconds and microseconds are then normalized so that the436representation is unique, with</p>437<ul class="simple">438<li><p><code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre"><=</span> <span class="pre">microseconds</span> <span class="pre"><</span> <span class="pre">1000000</span></code></p></li>439<li><p><code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre"><=</span> <span class="pre">seconds</span> <span class="pre"><</span> <span class="pre">3600*24</span></code> (the number of seconds in one day)</p></li>440<li><p><code class="docutils literal notranslate"><span class="pre">-999999999</span> <span class="pre"><=</span> <span class="pre">days</span> <span class="pre"><=</span> <span class="pre">999999999</span></code></p></li>441</ul>442<p>The following example illustrates how any arguments besides443<em>days</em>, <em>seconds</em> and <em>microseconds</em> are “merged” and normalized into those444three resulting attributes:</p>445<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>446<span class="gp">>>> </span><span class="n">delta</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span>447<span class="gp">... </span> <span class="n">days</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span>448<span class="gp">... </span> <span class="n">seconds</span><span class="o">=</span><span class="mi">27</span><span class="p">,</span>449<span class="gp">... </span> <span class="n">microseconds</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span>450<span class="gp">... </span> <span class="n">milliseconds</span><span class="o">=</span><span class="mi">29000</span><span class="p">,</span>451<span class="gp">... </span> <span class="n">minutes</span><span class="o">=</span><span class="mi">5</span><span class="p">,</span>452<span class="gp">... </span> <span class="n">hours</span><span class="o">=</span><span class="mi">8</span><span class="p">,</span>453<span class="gp">... </span> <span class="n">weeks</span><span class="o">=</span><span class="mi">2</span>454<span class="gp">... </span><span class="p">)</span>455<span class="gp">>>> </span><span class="c1"># Only days, seconds, and microseconds remain</span>456<span class="gp">>>> </span><span class="n">delta</span>457<span class="go">datetime.timedelta(days=64, seconds=29156, microseconds=10)</span>458</pre></div>459</div>460<div class="admonition tip">461<p class="admonition-title">Tip</p>462<p><code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">datetime</span> <span class="pre">as</span> <span class="pre">dt</span></code> instead of <code class="docutils literal notranslate"><span class="pre">import</span> <span class="pre">datetime</span></code> or463<code class="docutils literal notranslate"><span class="pre">from</span> <span class="pre">datetime</span> <span class="pre">import</span> <span class="pre">datetime</span></code> to avoid confusion between the module464and the class. See <a class="reference external" href="https://adamj.eu/tech/2019/09/12/how-i-import-pythons-datetime-module/">How I Import Python’s datetime Module</a>.</p>465</div>466<p>If any argument is a float and there are fractional microseconds,467the fractional microseconds left over from all arguments are468combined and their sum is rounded to the nearest microsecond using469round-half-to-even tiebreaker. If no argument is a float, the470conversion and normalization processes are exact (no information is471lost).</p>472<p>If the normalized value of days lies outside the indicated range,473<a class="reference internal" href="exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> is raised.</p>474<p>Note that normalization of negative values may be surprising at first. For475example:</p>476<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>477<span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">microseconds</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span>478<span class="gp">>>> </span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">days</span><span class="p">,</span> <span class="n">d</span><span class="o">.</span><span class="n">seconds</span><span class="p">,</span> <span class="n">d</span><span class="o">.</span><span class="n">microseconds</span><span class="p">)</span>479<span class="go">(-1, 86399, 999999)</span>480</pre></div>481</div>482<p>Since the string representation of <code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code> objects can be confusing,483use the following recipe to produce a more readable format:</p>484<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="k">def</span><span class="w"> </span><span class="nf">pretty_timedelta</span><span class="p">(</span><span class="n">td</span><span class="p">):</span>485<span class="gp">... </span> <span class="k">if</span> <span class="n">td</span><span class="o">.</span><span class="n">days</span> <span class="o">>=</span> <span class="mi">0</span><span class="p">:</span>486<span class="gp">... </span> <span class="k">return</span> <span class="nb">str</span><span class="p">(</span><span class="n">td</span><span class="p">)</span>487<span class="gp">... </span> <span class="k">return</span> <span class="sa">f</span><span class="s1">'-(</span><span class="si">{</span><span class="o">-</span><span class="n">td</span><span class="si">!s}</span><span class="s1">)'</span>488<span class="gp">...</span>489<span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span>490<span class="gp">>>> </span><span class="nb">str</span><span class="p">(</span><span class="n">d</span><span class="p">)</span> <span class="c1"># not human-friendly</span>491<span class="go">'-1 day, 23:00:00'</span>492<span class="gp">>>> </span><span class="n">pretty_timedelta</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>493<span class="go">'-(1:00:00)'</span>494</pre></div>495</div>496</dd></dl>497 498<p>Class attributes:</p>499<dl class="py attribute">500<dt class="sig sig-object py" id="datetime.timedelta.min">501<span class="sig-prename descclassname"><span class="pre">timedelta.</span></span><span class="sig-name descname"><span class="pre">min</span></span><a class="headerlink" href="#datetime.timedelta.min" title="Link to this definition">¶</a></dt>502<dd><p>The most negative <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object, <code class="docutils literal notranslate"><span class="pre">timedelta(-999999999)</span></code>.</p>503</dd></dl>504 505<dl class="py attribute">506<dt class="sig sig-object py" id="datetime.timedelta.max">507<span class="sig-prename descclassname"><span class="pre">timedelta.</span></span><span class="sig-name descname"><span class="pre">max</span></span><a class="headerlink" href="#datetime.timedelta.max" title="Link to this definition">¶</a></dt>508<dd><p>The most positive <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object, <code class="docutils literal notranslate"><span class="pre">timedelta(days=999999999,</span>509<span class="pre">hours=23,</span> <span class="pre">minutes=59,</span> <span class="pre">seconds=59,</span> <span class="pre">microseconds=999999)</span></code>.</p>510</dd></dl>511 512<dl class="py attribute">513<dt class="sig sig-object py" id="datetime.timedelta.resolution">514<span class="sig-prename descclassname"><span class="pre">timedelta.</span></span><span class="sig-name descname"><span class="pre">resolution</span></span><a class="headerlink" href="#datetime.timedelta.resolution" title="Link to this definition">¶</a></dt>515<dd><p>The smallest possible difference between non-equal <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> objects,516<code class="docutils literal notranslate"><span class="pre">timedelta(microseconds=1)</span></code>.</p>517</dd></dl>518 519<p>Note that, because of normalization, <code class="docutils literal notranslate"><span class="pre">timedelta.max</span></code> is greater than <code class="docutils literal notranslate"><span class="pre">-timedelta.min</span></code>.520<code class="docutils literal notranslate"><span class="pre">-timedelta.max</span></code> is not representable as a <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object.</p>521<p>Instance attributes (read-only):</p>522<dl class="py attribute">523<dt class="sig sig-object py" id="datetime.timedelta.days">524<span class="sig-prename descclassname"><span class="pre">timedelta.</span></span><span class="sig-name descname"><span class="pre">days</span></span><a class="headerlink" href="#datetime.timedelta.days" title="Link to this definition">¶</a></dt>525<dd><p>Between -999,999,999 and 999,999,999 inclusive.</p>526</dd></dl>527 528<dl class="py attribute">529<dt class="sig sig-object py" id="datetime.timedelta.seconds">530<span class="sig-prename descclassname"><span class="pre">timedelta.</span></span><span class="sig-name descname"><span class="pre">seconds</span></span><a class="headerlink" href="#datetime.timedelta.seconds" title="Link to this definition">¶</a></dt>531<dd><p>Between 0 and 86,399 inclusive.</p>532<div class="admonition caution">533<p class="admonition-title">Caution</p>534<p>It is a somewhat common bug for code to unintentionally use this attribute535when it is actually intended to get a <a class="reference internal" href="#datetime.timedelta.total_seconds" title="datetime.timedelta.total_seconds"><code class="xref py py-meth docutils literal notranslate"><span class="pre">total_seconds()</span></code></a>536value instead:</p>537<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>538<span class="gp">>>> </span><span class="n">duration</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">seconds</span><span class="o">=</span><span class="mi">11235813</span><span class="p">)</span>539<span class="gp">>>> </span><span class="n">duration</span><span class="o">.</span><span class="n">days</span><span class="p">,</span> <span class="n">duration</span><span class="o">.</span><span class="n">seconds</span>540<span class="go">(130, 3813)</span>541<span class="gp">>>> </span><span class="n">duration</span><span class="o">.</span><span class="n">total_seconds</span><span class="p">()</span>542<span class="go">11235813.0</span>543</pre></div>544</div>545</div>546</dd></dl>547 548<dl class="py attribute">549<dt class="sig sig-object py" id="datetime.timedelta.microseconds">550<span class="sig-prename descclassname"><span class="pre">timedelta.</span></span><span class="sig-name descname"><span class="pre">microseconds</span></span><a class="headerlink" href="#datetime.timedelta.microseconds" title="Link to this definition">¶</a></dt>551<dd><p>Between 0 and 999,999 inclusive.</p>552</dd></dl>553 554<p>Supported operations:</p>555<table class="docutils align-default">556<thead>557<tr class="row-odd"><th class="head"><p>Operation</p></th>558<th class="head"><p>Result</p></th>559</tr>560</thead>561<tbody>562<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">+</span> <span class="pre">t3</span></code></p></td>563<td><p>Sum of <code class="docutils literal notranslate"><span class="pre">t2</span></code> and <code class="docutils literal notranslate"><span class="pre">t3</span></code>.564Afterwards <code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">-</span> <span class="pre">t2</span> <span class="pre">==</span> <span class="pre">t3</span></code> and565<code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">-</span> <span class="pre">t3</span> <span class="pre">==</span> <span class="pre">t2</span></code> are true. (1)</p></td>566</tr>567<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">-</span> <span class="pre">t3</span></code></p></td>568<td><p>Difference of <code class="docutils literal notranslate"><span class="pre">t2</span></code> and <code class="docutils literal notranslate"><span class="pre">t3</span></code>. Afterwards569<code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">==</span> <span class="pre">t2</span> <span class="pre">-</span> <span class="pre">t3</span></code> and <code class="docutils literal notranslate"><span class="pre">t2</span> <span class="pre">==</span> <span class="pre">t1</span> <span class="pre">+</span> <span class="pre">t3</span></code> are570true. (1)(6)</p></td>571</tr>572<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">*</span> <span class="pre">i</span> <span class="pre">or</span> <span class="pre">t1</span> <span class="pre">=</span> <span class="pre">i</span> <span class="pre">*</span> <span class="pre">t2</span></code></p></td>573<td><p>Delta multiplied by an integer.574Afterwards <code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">//</span> <span class="pre">i</span> <span class="pre">==</span> <span class="pre">t2</span></code> is true,575provided <code class="docutils literal notranslate"><span class="pre">i</span> <span class="pre">!=</span> <span class="pre">0</span></code>.</p></td>576</tr>577<tr class="row-odd"><td></td>578<td><p>In general, <code class="docutils literal notranslate"><span class="pre">t1</span>  <span class="pre">*</span> <span class="pre">i</span> <span class="pre">==</span> <span class="pre">t1</span> <span class="pre">*</span> <span class="pre">(i-1)</span> <span class="pre">+</span> <span class="pre">t1</span></code>579is true. (1)</p></td>580</tr>581<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">*</span> <span class="pre">f</span> <span class="pre">or</span> <span class="pre">t1</span> <span class="pre">=</span> <span class="pre">f</span> <span class="pre">*</span> <span class="pre">t2</span></code></p></td>582<td><p>Delta multiplied by a float. The result is583rounded to the nearest multiple of584timedelta.resolution using round-half-to-even.</p></td>585</tr>586<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">f</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">/</span> <span class="pre">t3</span></code></p></td>587<td><p>Division (3) of overall duration <code class="docutils literal notranslate"><span class="pre">t2</span></code> by588interval unit <code class="docutils literal notranslate"><span class="pre">t3</span></code>. Returns a <a class="reference internal" href="functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a>589object.</p></td>590</tr>591<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">/</span> <span class="pre">f</span> <span class="pre">or</span> <span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">/</span> <span class="pre">i</span></code></p></td>592<td><p>Delta divided by a float or an int. The result593is rounded to the nearest multiple of594timedelta.resolution using round-half-to-even.</p></td>595</tr>596<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">//</span> <span class="pre">i</span></code> or597<code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">//</span> <span class="pre">t3</span></code></p></td>598<td><p>The floor is computed and the remainder (if599any) is thrown away. In the second case, an600integer is returned. (3)</p></td>601</tr>602<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">=</span> <span class="pre">t2</span> <span class="pre">%</span> <span class="pre">t3</span></code></p></td>603<td><p>The remainder is computed as a604<a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object. (3)</p></td>605</tr>606<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">q,</span> <span class="pre">r</span> <span class="pre">=</span> <span class="pre">divmod(t1,</span> <span class="pre">t2)</span></code></p></td>607<td><p>Computes the quotient and the remainder:608<code class="docutils literal notranslate"><span class="pre">q</span> <span class="pre">=</span> <span class="pre">t1</span> <span class="pre">//</span> <span class="pre">t2</span></code> (3) and <code class="docutils literal notranslate"><span class="pre">r</span> <span class="pre">=</span> <span class="pre">t1</span> <span class="pre">%</span> <span class="pre">t2</span></code>.609<code class="docutils literal notranslate"><span class="pre">q</span></code> is an integer and <code class="docutils literal notranslate"><span class="pre">r</span></code> is a610<a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object.</p></td>611</tr>612<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">+t1</span></code></p></td>613<td><p>Returns a <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object with the614same value. (2)</p></td>615</tr>616<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">-t1</span></code></p></td>617<td><p>Equivalent to <code class="docutils literal notranslate"><span class="pre">timedelta(-t1.days,</span>618<span class="pre">-t1.seconds,</span> <span class="pre">-t1.microseconds)</span></code>,619and to <code class="docutils literal notranslate"><span class="pre">t1</span> <span class="pre">*</span> <span class="pre">-1</span></code>. (1)(4)</p></td>620</tr>621<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">abs(t)</span></code></p></td>622<td><p>Equivalent to <code class="docutils literal notranslate"><span class="pre">+t</span></code> when <code class="docutils literal notranslate"><span class="pre">t.days</span> <span class="pre">>=</span> <span class="pre">0</span></code>,623and to <code class="docutils literal notranslate"><span class="pre">-t</span></code> when <code class="docutils literal notranslate"><span class="pre">t.days</span> <span class="pre"><</span> <span class="pre">0</span></code>. (2)</p></td>624</tr>625<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">str(t)</span></code></p></td>626<td><p>Returns a string in the form627<code class="docutils literal notranslate"><span class="pre">[D</span> <span class="pre">day[s],</span> <span class="pre">][H]H:MM:SS[.UUUUUU]</span></code>, where D628is negative for negative <code class="docutils literal notranslate"><span class="pre">t</span></code>. (5)</p></td>629</tr>630<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">repr(t)</span></code></p></td>631<td><p>Returns a string representation of the632<a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object as a constructor633call with canonical attribute values.</p></td>634</tr>635</tbody>636</table>637<p>Notes:</p>638<ol class="arabic">639<li><p>This is exact but may overflow.</p></li>640<li><p>This is exact and cannot overflow.</p></li>641<li><p>Division by zero raises <a class="reference internal" href="exceptions.html#ZeroDivisionError" title="ZeroDivisionError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ZeroDivisionError</span></code></a>.</p></li>642<li><p><code class="docutils literal notranslate"><span class="pre">-timedelta.max</span></code> is not representable as a <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object.</p></li>643<li><p>String representations of <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> objects are normalized644similarly to their internal representation. This leads to somewhat645unusual results for negative timedeltas. For example:</p>646<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">timedelta</span><span class="p">(</span><span class="n">hours</span><span class="o">=-</span><span class="mi">5</span><span class="p">)</span>647<span class="go">datetime.timedelta(days=-1, seconds=68400)</span>648<span class="gp">>>> </span><span class="nb">print</span><span class="p">(</span><span class="n">_</span><span class="p">)</span>649<span class="go">-1 day, 19:00:00</span>650</pre></div>651</div>652</li>653<li><p>The expression <code class="docutils literal notranslate"><span class="pre">t2</span> <span class="pre">-</span> <span class="pre">t3</span></code> will always be equal to the expression <code class="docutils literal notranslate"><span class="pre">t2</span> <span class="pre">+</span> <span class="pre">(-t3)</span></code> except654when t3 is equal to <code class="docutils literal notranslate"><span class="pre">timedelta.max</span></code>; in that case the former will produce a result655while the latter will overflow.</p></li>656</ol>657<p>In addition to the operations listed above, <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> objects support658certain additions and subtractions with <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> and <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a>659objects (see below).</p>660<div class="versionchanged">661<p><span class="versionmodified changed">Changed in version 3.2: </span>Floor division and true division of a <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object by another662<code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code> object are now supported, as are remainder operations and663the <a class="reference internal" href="functions.html#divmod" title="divmod"><code class="xref py py-func docutils literal notranslate"><span class="pre">divmod()</span></code></a> function. True division and multiplication of a664<code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code> object by a <a class="reference internal" href="functions.html#float" title="float"><code class="xref py py-class docutils literal notranslate"><span class="pre">float</span></code></a> object are now supported.</p>665</div>666<p><a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> objects support equality and order comparisons.</p>667<p>In Boolean contexts, a <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> object is668considered to be true if and only if it isn’t equal to <code class="docutils literal notranslate"><span class="pre">timedelta(0)</span></code>.</p>669<p>Instance methods:</p>670<dl class="py method">671<dt class="sig sig-object py" id="datetime.timedelta.total_seconds">672<span class="sig-prename descclassname"><span class="pre">timedelta.</span></span><span class="sig-name descname"><span class="pre">total_seconds</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.timedelta.total_seconds" title="Link to this definition">¶</a></dt>673<dd><p>Return the total number of seconds contained in the duration. Equivalent to674<code class="docutils literal notranslate"><span class="pre">td</span> <span class="pre">/</span> <span class="pre">timedelta(seconds=1)</span></code>. For interval units other than seconds, use the675division form directly (for example, <code class="docutils literal notranslate"><span class="pre">td</span> <span class="pre">/</span> <span class="pre">timedelta(microseconds=1)</span></code>).</p>676<p>Note that for very large time intervals (greater than 270 years on677most platforms) this method will lose microsecond accuracy.</p>678<div class="versionadded">679<p><span class="versionmodified added">Added in version 3.2.</span></p>680</div>681</dd></dl>682 683<section id="examples-of-usage-timedelta">684<h3>Examples of usage: <code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code><a class="headerlink" href="#examples-of-usage-timedelta" title="Link to this heading">¶</a></h3>685<p>An additional example of normalization:</p>686<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="c1"># Components of another_year add up to exactly 365 days</span>687<span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>688<span class="gp">>>> </span><span class="n">year</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">days</span><span class="o">=</span><span class="mi">365</span><span class="p">)</span>689<span class="gp">>>> </span><span class="n">another_year</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">weeks</span><span class="o">=</span><span class="mi">40</span><span class="p">,</span> <span class="n">days</span><span class="o">=</span><span class="mi">84</span><span class="p">,</span> <span class="n">hours</span><span class="o">=</span><span class="mi">23</span><span class="p">,</span>690<span class="gp">... </span> <span class="n">minutes</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">seconds</span><span class="o">=</span><span class="mi">600</span><span class="p">)</span>691<span class="gp">>>> </span><span class="n">year</span> <span class="o">==</span> <span class="n">another_year</span>692<span class="go">True</span>693<span class="gp">>>> </span><span class="n">year</span><span class="o">.</span><span class="n">total_seconds</span><span class="p">()</span>694<span class="go">31536000.0</span>695</pre></div>696</div>697<p>Examples of <a class="reference internal" href="#datetime.timedelta" title="datetime.timedelta"><code class="xref py py-class docutils literal notranslate"><span class="pre">timedelta</span></code></a> arithmetic:</p>698<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>699<span class="gp">>>> </span><span class="n">year</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">timedelta</span><span class="p">(</span><span class="n">days</span><span class="o">=</span><span class="mi">365</span><span class="p">)</span>700<span class="gp">>>> </span><span class="n">ten_years</span> <span class="o">=</span> <span class="mi">10</span> <span class="o">*</span> <span class="n">year</span>701<span class="gp">>>> </span><span class="n">ten_years</span>702<span class="go">datetime.timedelta(days=3650)</span>703<span class="gp">>>> </span><span class="n">ten_years</span><span class="o">.</span><span class="n">days</span> <span class="o">//</span> <span class="mi">365</span>704<span class="go">10</span>705<span class="gp">>>> </span><span class="n">nine_years</span> <span class="o">=</span> <span class="n">ten_years</span> <span class="o">-</span> <span class="n">year</span>706<span class="gp">>>> </span><span class="n">nine_years</span>707<span class="go">datetime.timedelta(days=3285)</span>708<span class="gp">>>> </span><span class="n">three_years</span> <span class="o">=</span> <span class="n">nine_years</span> <span class="o">//</span> <span class="mi">3</span>709<span class="gp">>>> </span><span class="n">three_years</span><span class="p">,</span> <span class="n">three_years</span><span class="o">.</span><span class="n">days</span> <span class="o">//</span> <span class="mi">365</span>710<span class="go">(datetime.timedelta(days=1095), 3)</span>711</pre></div>712</div>713</section>714</section>715<section id="date-objects">716<span id="datetime-date"></span><h2><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code> objects<a class="headerlink" href="#date-objects" title="Link to this heading">¶</a></h2>717<p>A <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> object represents a date (year, month and day) in an idealized718calendar, the current Gregorian calendar indefinitely extended in both719directions.</p>720<p>January 1 of year 1 is called day number 1, January 2 of year 1 is721called day number 2, and so on. <a class="footnote-reference brackets" href="#id5" id="id2" role="doc-noteref"><span class="fn-bracket">[</span>2<span class="fn-bracket">]</span></a></p>722<dl class="py class">723<dt class="sig sig-object py" id="datetime.date">724<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">date</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">year</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">month</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">day</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date" title="Link to this definition">¶</a></dt>725<dd><p>All arguments are required. Arguments must be integers, in the following726ranges:</p>727<ul class="simple">728<li><p><code class="docutils literal notranslate"><span class="pre">MINYEAR</span> <span class="pre"><=</span> <span class="pre">year</span> <span class="pre"><=</span> <span class="pre">MAXYEAR</span></code></p></li>729<li><p><code class="docutils literal notranslate"><span class="pre">1</span> <span class="pre"><=</span> <span class="pre">month</span> <span class="pre"><=</span> <span class="pre">12</span></code></p></li>730<li><p><code class="docutils literal notranslate"><span class="pre">1</span> <span class="pre"><=</span> <span class="pre">day</span> <span class="pre"><=</span> <span class="pre">number</span> <span class="pre">of</span> <span class="pre">days</span> <span class="pre">in</span> <span class="pre">the</span> <span class="pre">given</span> <span class="pre">month</span> <span class="pre">and</span> <span class="pre">year</span></code></p></li>731</ul>732<p>If an argument outside those ranges is given, <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is raised.</p>733</dd></dl>734 735<p>Other constructors, all class methods:</p>736<dl class="py method">737<dt class="sig sig-object py" id="datetime.date.today">738<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">today</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.today" title="Link to this definition">¶</a></dt>739<dd><p>Return the current local date.</p>740<p>This is equivalent to <code class="docutils literal notranslate"><span class="pre">date.fromtimestamp(time.time())</span></code>.</p>741</dd></dl>742 743<dl class="py method">744<dt class="sig sig-object py" id="datetime.date.fromtimestamp">745<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">fromtimestamp</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">timestamp</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.fromtimestamp" title="Link to this definition">¶</a></dt>746<dd><p>Return the local date corresponding to the POSIX <em>timestamp</em>, such as is747returned by <a class="reference internal" href="time.html#time.time" title="time.time"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.time()</span></code></a>.</p>748<p>This may raise <a class="reference internal" href="exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a>, if the timestamp is out749of the range of values supported by the platform C <code class="xref c c-func docutils literal notranslate"><span class="pre">localtime()</span></code>750function, and <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> on <code class="xref c c-func docutils literal notranslate"><span class="pre">localtime()</span></code> failure.751It’s common for this to be restricted to years from 1970 through 2038. Note752that on non-POSIX systems that include leap seconds in their notion of a753timestamp, leap seconds are ignored by <code class="xref py py-meth docutils literal notranslate"><span class="pre">fromtimestamp()</span></code>.</p>754<div class="versionchanged">755<p><span class="versionmodified changed">Changed in version 3.3: </span>Raise <a class="reference internal" href="exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> instead of <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> if the timestamp756is out of the range of values supported by the platform C757<code class="xref c c-func docutils literal notranslate"><span class="pre">localtime()</span></code> function. Raise <a class="reference internal" href="exceptions.html#OSError" title="OSError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OSError</span></code></a> instead of758<code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code> on <code class="xref c c-func docutils literal notranslate"><span class="pre">localtime()</span></code> failure.</p>759</div>760<div class="versionchanged">761<p><span class="versionmodified changed">Changed in version 3.15: </span>Accepts any real number as <em>timestamp</em>, not only integer or float.</p>762</div>763</dd></dl>764 765<dl class="py method">766<dt class="sig sig-object py" id="datetime.date.fromordinal">767<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">fromordinal</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">ordinal</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.fromordinal" title="Link to this definition">¶</a></dt>768<dd><p>Return the date corresponding to the proleptic Gregorian <em>ordinal</em>, where769January 1 of year 1 has ordinal 1.</p>770<p><a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is raised unless <code class="docutils literal notranslate"><span class="pre">1</span> <span class="pre"><=</span> <span class="pre">ordinal</span> <span class="pre"><=</span>771<span class="pre">date.max.toordinal()</span></code>. For any date <code class="docutils literal notranslate"><span class="pre">d</span></code>,772<code class="docutils literal notranslate"><span class="pre">date.fromordinal(d.toordinal())</span> <span class="pre">==</span> <span class="pre">d</span></code>.</p>773</dd></dl>774 775<dl class="py method">776<dt class="sig sig-object py" id="datetime.date.fromisoformat">777<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">fromisoformat</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">date_string</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.fromisoformat" title="Link to this definition">¶</a></dt>778<dd><p>Return a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> corresponding to a <em>date_string</em> given in any valid779ISO 8601 format, with the following exceptions:</p>780<ol class="arabic simple">781<li><p>Reduced precision dates are not currently supported (<code class="docutils literal notranslate"><span class="pre">YYYY-MM</span></code>,782<code class="docutils literal notranslate"><span class="pre">YYYY</span></code>).</p></li>783<li><p>Extended date representations are not currently supported784(<code class="docutils literal notranslate"><span class="pre">±YYYYYY-MM-DD</span></code>).</p></li>785<li><p>Ordinal dates are not currently supported (<code class="docutils literal notranslate"><span class="pre">YYYY-OOO</span></code>).</p></li>786</ol>787<p>Examples:</p>788<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>789<span class="gp">>>> </span><span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">fromisoformat</span><span class="p">(</span><span class="s1">'2019-12-04'</span><span class="p">)</span>790<span class="go">datetime.date(2019, 12, 4)</span>791<span class="gp">>>> </span><span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">fromisoformat</span><span class="p">(</span><span class="s1">'20191204'</span><span class="p">)</span>792<span class="go">datetime.date(2019, 12, 4)</span>793<span class="gp">>>> </span><span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">fromisoformat</span><span class="p">(</span><span class="s1">'2021-W01-1'</span><span class="p">)</span>794<span class="go">datetime.date(2021, 1, 4)</span>795</pre></div>796</div>797<div class="versionadded">798<p><span class="versionmodified added">Added in version 3.7.</span></p>799</div>800<div class="versionchanged">801<p><span class="versionmodified changed">Changed in version 3.11: </span>Previously, this method only supported the format <code class="docutils literal notranslate"><span class="pre">YYYY-MM-DD</span></code>.</p>802</div>803</dd></dl>804 805<dl class="py method">806<dt class="sig sig-object py" id="datetime.date.fromisocalendar">807<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">fromisocalendar</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">year</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">week</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">day</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.fromisocalendar" title="Link to this definition">¶</a></dt>808<dd><p>Return a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> corresponding to the ISO calendar date specified by809<em>year</em>, <em>week</em> and <em>day</em>. This is the inverse of the function <a class="reference internal" href="#datetime.date.isocalendar" title="datetime.date.isocalendar"><code class="xref py py-meth docutils literal notranslate"><span class="pre">date.isocalendar()</span></code></a>.</p>810<div class="versionadded">811<p><span class="versionmodified added">Added in version 3.8.</span></p>812</div>813</dd></dl>814 815<dl class="py method">816<dt class="sig sig-object py" id="datetime.date.strptime">817<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">strptime</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">date_string</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">format</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.strptime" title="Link to this definition">¶</a></dt>818<dd><p>Return a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> corresponding to <em>date_string</em>, parsed according to819<em>format</em>. This is equivalent to:</p>820<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">date</span><span class="p">(</span><span class="o">*</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="n">date_string</span><span class="p">,</span> <span class="nb">format</span><span class="p">)[</span><span class="mi">0</span><span class="p">:</span><span class="mi">3</span><span class="p">]))</span>821</pre></div>822</div>823<p><a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is raised if the date_string and format824can’t be parsed by <a class="reference internal" href="time.html#time.strptime" title="time.strptime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.strptime()</span></code></a> or if it returns a value which isn’t a825time tuple. See also <a class="reference internal" href="#strftime-strptime-behavior"><span class="std std-ref">strftime() and strptime() behavior</span></a> and826<a class="reference internal" href="#datetime.date.fromisoformat" title="datetime.date.fromisoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">date.fromisoformat()</span></code></a>.</p>827<div class="admonition note">828<p class="admonition-title">Note</p>829<p>If <em>format</em> specifies a day of month without a year a830<a class="reference internal" href="exceptions.html#DeprecationWarning" title="DeprecationWarning"><code class="xref py py-exc docutils literal notranslate"><span class="pre">DeprecationWarning</span></code></a> is emitted. This is to avoid a quadrennial831leap year bug in code seeking to parse only a month and day as the832default year used in absence of one in the format is not a leap year.833Such <em>format</em> values may raise an error as of Python 3.15. The834workaround is to always include a year in your <em>format</em>. If parsing835<em>date_string</em> values that do not have a year, explicitly add a year that836is a leap year before parsing:</p>837<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>838<span class="gp">>>> </span><span class="n">date_string</span> <span class="o">=</span> <span class="s2">"02/29"</span>839<span class="gp">>>> </span><span class="n">when</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">strptime</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">date_string</span><span class="si">}</span><span class="s2">;1984"</span><span class="p">,</span> <span class="s2">"%m/</span><span class="si">%d</span><span class="s2">;%Y"</span><span class="p">)</span> <span class="c1"># Avoids leap year bug.</span>840<span class="gp">>>> </span><span class="n">when</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%B </span><span class="si">%d</span><span class="s2">"</span><span class="p">)</span>841<span class="go">'February 29'</span>842</pre></div>843</div>844</div>845<div class="versionadded">846<p><span class="versionmodified added">Added in version 3.14.</span></p>847</div>848</dd></dl>849 850<p>Class attributes:</p>851<dl class="py attribute">852<dt class="sig sig-object py" id="datetime.date.min">853<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">min</span></span><a class="headerlink" href="#datetime.date.min" title="Link to this definition">¶</a></dt>854<dd><p>The earliest representable date, <code class="docutils literal notranslate"><span class="pre">date(MINYEAR,</span> <span class="pre">1,</span> <span class="pre">1)</span></code>.</p>855</dd></dl>856 857<dl class="py attribute">858<dt class="sig sig-object py" id="datetime.date.max">859<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">max</span></span><a class="headerlink" href="#datetime.date.max" title="Link to this definition">¶</a></dt>860<dd><p>The latest representable date, <code class="docutils literal notranslate"><span class="pre">date(MAXYEAR,</span> <span class="pre">12,</span> <span class="pre">31)</span></code>.</p>861</dd></dl>862 863<dl class="py attribute">864<dt class="sig sig-object py" id="datetime.date.resolution">865<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">resolution</span></span><a class="headerlink" href="#datetime.date.resolution" title="Link to this definition">¶</a></dt>866<dd><p>The smallest possible difference between non-equal date objects,867<code class="docutils literal notranslate"><span class="pre">timedelta(days=1)</span></code>.</p>868</dd></dl>869 870<p>Instance attributes (read-only):</p>871<dl class="py attribute">872<dt class="sig sig-object py" id="datetime.date.year">873<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">year</span></span><a class="headerlink" href="#datetime.date.year" title="Link to this definition">¶</a></dt>874<dd><p>Between <a class="reference internal" href="#datetime.MINYEAR" title="datetime.MINYEAR"><code class="xref py py-const docutils literal notranslate"><span class="pre">MINYEAR</span></code></a> and <a class="reference internal" href="#datetime.MAXYEAR" title="datetime.MAXYEAR"><code class="xref py py-const docutils literal notranslate"><span class="pre">MAXYEAR</span></code></a> inclusive.</p>875</dd></dl>876 877<dl class="py attribute">878<dt class="sig sig-object py" id="datetime.date.month">879<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">month</span></span><a class="headerlink" href="#datetime.date.month" title="Link to this definition">¶</a></dt>880<dd><p>Between 1 and 12 inclusive.</p>881</dd></dl>882 883<dl class="py attribute">884<dt class="sig sig-object py" id="datetime.date.day">885<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">day</span></span><a class="headerlink" href="#datetime.date.day" title="Link to this definition">¶</a></dt>886<dd><p>Between 1 and the number of days in the given month of the given year.</p>887</dd></dl>888 889<p>Supported operations:</p>890<table class="docutils align-default">891<thead>892<tr class="row-odd"><th class="head"><p>Operation</p></th>893<th class="head"><p>Result</p></th>894</tr>895</thead>896<tbody>897<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">date2</span> <span class="pre">=</span> <span class="pre">date1</span> <span class="pre">+</span> <span class="pre">timedelta</span></code></p></td>898<td><p><code class="docutils literal notranslate"><span class="pre">date2</span></code> will be <code class="docutils literal notranslate"><span class="pre">timedelta.days</span></code> days899after <code class="docutils literal notranslate"><span class="pre">date1</span></code>. (1)</p></td>900</tr>901<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">date2</span> <span class="pre">=</span> <span class="pre">date1</span> <span class="pre">-</span> <span class="pre">timedelta</span></code></p></td>902<td><p>Computes <code class="docutils literal notranslate"><span class="pre">date2</span></code> such that <code class="docutils literal notranslate"><span class="pre">date2</span> <span class="pre">+</span>903<span class="pre">timedelta</span> <span class="pre">==</span> <span class="pre">date1</span></code>. (2)</p></td>904</tr>905<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">timedelta</span> <span class="pre">=</span> <span class="pre">date1</span> <span class="pre">-</span> <span class="pre">date2</span></code></p></td>906<td><p>(3)</p></td>907</tr>908<tr class="row-odd"><td><div class="line-block">909<div class="line"><code class="docutils literal notranslate"><span class="pre">date1</span> <span class="pre">==</span> <span class="pre">date2</span></code></div>910<div class="line"><code class="docutils literal notranslate"><span class="pre">date1</span> <span class="pre">!=</span> <span class="pre">date2</span></code></div>911</div>912</td>913<td><p>Equality comparison. (4)</p></td>914</tr>915<tr class="row-even"><td><div class="line-block">916<div class="line"><code class="docutils literal notranslate"><span class="pre">date1</span> <span class="pre"><</span> <span class="pre">date2</span></code></div>917<div class="line"><code class="docutils literal notranslate"><span class="pre">date1</span> <span class="pre">></span> <span class="pre">date2</span></code></div>918<div class="line"><code class="docutils literal notranslate"><span class="pre">date1</span> <span class="pre"><=</span> <span class="pre">date2</span></code></div>919<div class="line"><code class="docutils literal notranslate"><span class="pre">date1</span> <span class="pre">>=</span> <span class="pre">date2</span></code></div>920</div>921</td>922<td><p>Order comparison. (5)</p></td>923</tr>924</tbody>925</table>926<p>Notes:</p>927<ol class="arabic">928<li><p><em>date2</em> is moved forward in time if <code class="docutils literal notranslate"><span class="pre">timedelta.days</span> <span class="pre">></span> <span class="pre">0</span></code>, or backward if929<code class="docutils literal notranslate"><span class="pre">timedelta.days</span> <span class="pre"><</span> <span class="pre">0</span></code>. Afterward <code class="docutils literal notranslate"><span class="pre">date2</span> <span class="pre">-</span> <span class="pre">date1</span> <span class="pre">==</span> <span class="pre">timedelta.days</span></code>.930<code class="docutils literal notranslate"><span class="pre">timedelta.seconds</span></code> and <code class="docutils literal notranslate"><span class="pre">timedelta.microseconds</span></code> are ignored.931<a class="reference internal" href="exceptions.html#OverflowError" title="OverflowError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">OverflowError</span></code></a> is raised if <code class="docutils literal notranslate"><span class="pre">date2.year</span></code> would be smaller than932<a class="reference internal" href="#datetime.MINYEAR" title="datetime.MINYEAR"><code class="xref py py-const docutils literal notranslate"><span class="pre">MINYEAR</span></code></a> or larger than <a class="reference internal" href="#datetime.MAXYEAR" title="datetime.MAXYEAR"><code class="xref py py-const docutils literal notranslate"><span class="pre">MAXYEAR</span></code></a>.</p></li>933<li><p><code class="docutils literal notranslate"><span class="pre">timedelta.seconds</span></code> and <code class="docutils literal notranslate"><span class="pre">timedelta.microseconds</span></code> are ignored.</p></li>934<li><p>This is exact, and cannot overflow. <code class="docutils literal notranslate"><span class="pre">timedelta.seconds</span></code> and935<code class="docutils literal notranslate"><span class="pre">timedelta.microseconds</span></code> are 0, and <code class="docutils literal notranslate"><span class="pre">date2</span> <span class="pre">+</span> <span class="pre">timedelta</span> <span class="pre">==</span> <span class="pre">date1</span></code> after.</p></li>936<li><p><a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> objects are equal if they represent the same date.</p>937<p><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code> objects that are not also <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> instances938are never equal to <code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> objects, even if they represent939the same date.</p>940</li>941<li><p><em>date1</em> is considered less than <em>date2</em> when <em>date1</em> precedes <em>date2</em> in time.942In other words, <code class="docutils literal notranslate"><span class="pre">date1</span> <span class="pre"><</span> <span class="pre">date2</span></code> if and only if <code class="docutils literal notranslate"><span class="pre">date1.toordinal()</span> <span class="pre"><</span>943<span class="pre">date2.toordinal()</span></code>.</p>944<p>Order comparison between a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> object that is not also a945<a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> instance and a <code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> object raises946<a class="reference internal" href="exceptions.html#TypeError" title="TypeError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">TypeError</span></code></a>.</p>947</li>948</ol>949<div class="versionchanged">950<p><span class="versionmodified changed">Changed in version 3.13: </span>Comparison between <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> object and an instance of951the <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> subclass that is not a <code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> subclass952no longer converts the latter to <code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code>, ignoring the time part953and the time zone.954The default behavior can be changed by overriding the special comparison955methods in subclasses.</p>956</div>957<p>In Boolean contexts, all <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> objects are considered to be true.</p>958<p>Instance methods:</p>959<dl class="py method">960<dt class="sig sig-object py" id="datetime.date.replace">961<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">replace</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">year</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">self.year</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">month</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">self.month</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">day</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">self.day</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.replace" title="Link to this definition">¶</a></dt>962<dd><p>Return a new <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> object with the same values, but with specified963parameters updated.</p>964<p>Example:</p>965<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>966<span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="p">(</span><span class="mi">2002</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">31</span><span class="p">)</span>967<span class="gp">>>> </span><span class="n">d</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">day</span><span class="o">=</span><span class="mi">26</span><span class="p">)</span>968<span class="go">datetime.date(2002, 12, 26)</span>969</pre></div>970</div>971<p>The generic function <a class="reference internal" href="copy.html#copy.replace" title="copy.replace"><code class="xref py py-func docutils literal notranslate"><span class="pre">copy.replace()</span></code></a> also supports <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a>972objects.</p>973</dd></dl>974 975<dl class="py method">976<dt class="sig sig-object py" id="datetime.date.timetuple">977<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">timetuple</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.timetuple" title="Link to this definition">¶</a></dt>978<dd><p>Return a <a class="reference internal" href="time.html#time.struct_time" title="time.struct_time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time.struct_time</span></code></a> such as returned by <a class="reference internal" href="time.html#time.localtime" title="time.localtime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.localtime()</span></code></a>.</p>979<p>The hours, minutes and seconds are 0, and the DST flag is -1.</p>980<p><code class="docutils literal notranslate"><span class="pre">d.timetuple()</span></code> is equivalent to:</p>981<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">time</span><span class="o">.</span><span class="n">struct_time</span><span class="p">((</span><span class="n">d</span><span class="o">.</span><span class="n">year</span><span class="p">,</span> <span class="n">d</span><span class="o">.</span><span class="n">month</span><span class="p">,</span> <span class="n">d</span><span class="o">.</span><span class="n">day</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">d</span><span class="o">.</span><span class="n">weekday</span><span class="p">(),</span> <span class="n">yday</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>982</pre></div>983</div>984<p>where <code class="docutils literal notranslate"><span class="pre">yday</span> <span class="pre">=</span> <span class="pre">d.toordinal()</span> <span class="pre">-</span> <span class="pre">date(d.year,</span> <span class="pre">1,</span> <span class="pre">1).toordinal()</span> <span class="pre">+</span> <span class="pre">1</span></code>985is the day number within the current year starting with 1 for January 1st.</p>986</dd></dl>987 988<dl class="py method">989<dt class="sig sig-object py" id="datetime.date.toordinal">990<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">toordinal</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.toordinal" title="Link to this definition">¶</a></dt>991<dd><p>Return the proleptic Gregorian ordinal of the date, where January 1 of year 1992has ordinal 1. For any <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> object <code class="docutils literal notranslate"><span class="pre">d</span></code>,993<code class="docutils literal notranslate"><span class="pre">date.fromordinal(d.toordinal())</span> <span class="pre">==</span> <span class="pre">d</span></code>.</p>994</dd></dl>995 996<dl class="py method">997<dt class="sig sig-object py" id="datetime.date.weekday">998<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">weekday</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.weekday" title="Link to this definition">¶</a></dt>999<dd><p>Return the day of the week as an integer, where Monday is 0 and Sunday is 6.1000For example, <code class="docutils literal notranslate"><span class="pre">date(2002,</span> <span class="pre">12,</span> <span class="pre">4).weekday()</span> <span class="pre">==</span> <span class="pre">2</span></code>, a Wednesday. See also1001<a class="reference internal" href="#datetime.date.isoweekday" title="datetime.date.isoweekday"><code class="xref py py-meth docutils literal notranslate"><span class="pre">isoweekday()</span></code></a>.</p>1002</dd></dl>1003 1004<dl class="py method">1005<dt class="sig sig-object py" id="datetime.date.isoweekday">1006<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">isoweekday</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.isoweekday" title="Link to this definition">¶</a></dt>1007<dd><p>Return the day of the week as an integer, where Monday is 1 and Sunday is 7.1008For example, <code class="docutils literal notranslate"><span class="pre">date(2002,</span> <span class="pre">12,</span> <span class="pre">4).isoweekday()</span> <span class="pre">==</span> <span class="pre">3</span></code>, a Wednesday. See also1009<a class="reference internal" href="#datetime.date.weekday" title="datetime.date.weekday"><code class="xref py py-meth docutils literal notranslate"><span class="pre">weekday()</span></code></a>, <a class="reference internal" href="#datetime.date.isocalendar" title="datetime.date.isocalendar"><code class="xref py py-meth docutils literal notranslate"><span class="pre">isocalendar()</span></code></a>.</p>1010</dd></dl>1011 1012<dl class="py method">1013<dt class="sig sig-object py" id="datetime.date.isocalendar">1014<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">isocalendar</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.isocalendar" title="Link to this definition">¶</a></dt>1015<dd><p>Return a <a class="reference internal" href="../glossary.html#term-named-tuple"><span class="xref std std-term">named tuple</span></a> object with three components: <code class="docutils literal notranslate"><span class="pre">year</span></code>,1016<code class="docutils literal notranslate"><span class="pre">week</span></code> and <code class="docutils literal notranslate"><span class="pre">weekday</span></code>.</p>1017<p>The ISO calendar is a widely used variant of the Gregorian calendar. <a class="footnote-reference brackets" href="#id6" id="id3" role="doc-noteref"><span class="fn-bracket">[</span>3<span class="fn-bracket">]</span></a></p>1018<p>The ISO year consists of 52 or 53 full weeks, and where a week starts on a1019Monday and ends on a Sunday. The first week of an ISO year is the first1020(Gregorian) calendar week of a year containing a Thursday. This is called week1021number 1, and the ISO year of that Thursday is the same as its Gregorian year.</p>1022<p>For example, 2004 begins on a Thursday, so the first week of ISO year 20041023begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004:</p>1024<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>1025<span class="gp">>>> </span><span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="p">(</span><span class="mi">2003</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">29</span><span class="p">)</span><span class="o">.</span><span class="n">isocalendar</span><span class="p">()</span>1026<span class="go">datetime.IsoCalendarDate(year=2004, week=1, weekday=1)</span>1027<span class="gp">>>> </span><span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="p">(</span><span class="mi">2004</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span><span class="o">.</span><span class="n">isocalendar</span><span class="p">()</span>1028<span class="go">datetime.IsoCalendarDate(year=2004, week=1, weekday=7)</span>1029</pre></div>1030</div>1031<div class="versionchanged">1032<p><span class="versionmodified changed">Changed in version 3.9: </span>Result changed from a tuple to a <a class="reference internal" href="../glossary.html#term-named-tuple"><span class="xref std std-term">named tuple</span></a>.</p>1033</div>1034</dd></dl>1035 1036<dl class="py method">1037<dt class="sig sig-object py" id="datetime.date.isoformat">1038<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">isoformat</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.isoformat" title="Link to this definition">¶</a></dt>1039<dd><p>Return a string representing the date in ISO 8601 format, <code class="docutils literal notranslate"><span class="pre">YYYY-MM-DD</span></code>:</p>1040<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>1041<span class="gp">>>> </span><span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="p">(</span><span class="mi">2002</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>1042<span class="go">'2002-12-04'</span>1043</pre></div>1044</div>1045</dd></dl>1046 1047<dl class="py method">1048<dt class="sig sig-object py" id="datetime.date.__str__">1049<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">__str__</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.__str__" title="Link to this definition">¶</a></dt>1050<dd><p>For a date <code class="docutils literal notranslate"><span class="pre">d</span></code>, <code class="docutils literal notranslate"><span class="pre">str(d)</span></code> is equivalent to <code class="docutils literal notranslate"><span class="pre">d.isoformat()</span></code>.</p>1051</dd></dl>1052 1053<dl class="py method">1054<dt class="sig sig-object py" id="datetime.date.ctime">1055<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">ctime</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.ctime" title="Link to this definition">¶</a></dt>1056<dd><p>Return a string representing the date:</p>1057<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>1058<span class="gp">>>> </span><span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="p">(</span><span class="mi">2002</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span><span class="o">.</span><span class="n">ctime</span><span class="p">()</span>1059<span class="go">'Wed Dec 4 00:00:00 2002'</span>1060</pre></div>1061</div>1062<p><code class="docutils literal notranslate"><span class="pre">d.ctime()</span></code> is equivalent to:</p>1063<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">time</span><span class="o">.</span><span class="n">ctime</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">mktime</span><span class="p">(</span><span class="n">d</span><span class="o">.</span><span class="n">timetuple</span><span class="p">()))</span>1064</pre></div>1065</div>1066<p>on platforms where the native C1067<code class="xref c c-func docutils literal notranslate"><span class="pre">ctime()</span></code> function (which <a class="reference internal" href="time.html#time.ctime" title="time.ctime"><code class="xref py py-func docutils literal notranslate"><span class="pre">time.ctime()</span></code></a> invokes, but which1068<code class="xref py py-meth docutils literal notranslate"><span class="pre">date.ctime()</span></code> does not invoke) conforms to the C standard.</p>1069</dd></dl>1070 1071<dl class="py method">1072<dt class="sig sig-object py" id="datetime.date.strftime">1073<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">strftime</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">format</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.strftime" title="Link to this definition">¶</a></dt>1074<dd><p>Return a string representing the date, controlled by an explicit format string.1075Format codes referring to hours, minutes or seconds will see 0 values.1076See also <a class="reference internal" href="#strftime-strptime-behavior"><span class="std std-ref">strftime() and strptime() behavior</span></a> and <a class="reference internal" href="#datetime.date.isoformat" title="datetime.date.isoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">date.isoformat()</span></code></a>.</p>1077</dd></dl>1078 1079<dl class="py method">1080<dt class="sig sig-object py" id="datetime.date.__format__">1081<span class="sig-prename descclassname"><span class="pre">date.</span></span><span class="sig-name descname"><span class="pre">__format__</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">format</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.date.__format__" title="Link to this definition">¶</a></dt>1082<dd><p>Same as <a class="reference internal" href="#datetime.date.strftime" title="datetime.date.strftime"><code class="xref py py-meth docutils literal notranslate"><span class="pre">date.strftime()</span></code></a>. This makes it possible to specify a format1083string for a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> object in <a class="reference internal" href="../reference/lexical_analysis.html#f-strings"><span class="std std-ref">formatted string1084literals</span></a> and when using <a class="reference internal" href="stdtypes.html#str.format" title="str.format"><code class="xref py py-meth docutils literal notranslate"><span class="pre">str.format()</span></code></a>.1085See also <a class="reference internal" href="#strftime-strptime-behavior"><span class="std std-ref">strftime() and strptime() behavior</span></a> and <a class="reference internal" href="#datetime.date.isoformat" title="datetime.date.isoformat"><code class="xref py py-meth docutils literal notranslate"><span class="pre">date.isoformat()</span></code></a>.</p>1086</dd></dl>1087 1088<section id="examples-of-usage-date">1089<h3>Examples of usage: <code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code><a class="headerlink" href="#examples-of-usage-date" title="Link to this heading">¶</a></h3>1090<p>Example of counting days to an event:</p>1091<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">time</span>1092<span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>1093<span class="gp">>>> </span><span class="n">today</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">today</span><span class="p">()</span>1094<span class="gp">>>> </span><span class="n">today</span>1095<span class="go">datetime.date(2007, 12, 5)</span>1096<span class="gp">>>> </span><span class="n">today</span> <span class="o">==</span> <span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span>1097<span class="go">True</span>1098<span class="gp">>>> </span><span class="n">my_birthday</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="p">(</span><span class="n">today</span><span class="o">.</span><span class="n">year</span><span class="p">,</span> <span class="mi">6</span><span class="p">,</span> <span class="mi">24</span><span class="p">)</span>1099<span class="gp">>>> </span><span class="k">if</span> <span class="n">my_birthday</span> <span class="o"><</span> <span class="n">today</span><span class="p">:</span>1100<span class="gp">... </span> <span class="n">my_birthday</span> <span class="o">=</span> <span class="n">my_birthday</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">year</span><span class="o">=</span><span class="n">today</span><span class="o">.</span><span class="n">year</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span>1101<span class="gp">...</span>1102<span class="gp">>>> </span><span class="n">my_birthday</span>1103<span class="go">datetime.date(2008, 6, 24)</span>1104<span class="gp">>>> </span><span class="n">time_to_birthday</span> <span class="o">=</span> <span class="nb">abs</span><span class="p">(</span><span class="n">my_birthday</span> <span class="o">-</span> <span class="n">today</span><span class="p">)</span>1105<span class="gp">>>> </span><span class="n">time_to_birthday</span><span class="o">.</span><span class="n">days</span>1106<span class="go">202</span>1107</pre></div>1108</div>1109<p>More examples of working with <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a>:</p>1110<div class="highlight-pycon notranslate"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">import</span><span class="w"> </span><span class="nn">datetime</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">dt</span>1111<span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="n">dt</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">fromordinal</span><span class="p">(</span><span class="mi">730920</span><span class="p">)</span> <span class="c1"># 730920th day after 1. 1. 0001</span>1112<span class="gp">>>> </span><span class="n">d</span>1113<span class="go">datetime.date(2002, 3, 11)</span>1114 1115<span class="gp">>>> </span><span class="c1"># Methods related to formatting string output</span>1116<span class="gp">>>> </span><span class="n">d</span><span class="o">.</span><span class="n">isoformat</span><span class="p">()</span>1117<span class="go">'2002-03-11'</span>1118<span class="gp">>>> </span><span class="n">d</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"</span><span class="si">%d</span><span class="s2">/%m/%y"</span><span class="p">)</span>1119<span class="go">'11/03/02'</span>1120<span class="gp">>>> </span><span class="n">d</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s2">"%A </span><span class="si">%d</span><span class="s2">. %B %Y"</span><span class="p">)</span>1121<span class="go">'Monday 11. March 2002'</span>1122<span class="gp">>>> </span><span class="n">d</span><span class="o">.</span><span class="n">ctime</span><span class="p">()</span>1123<span class="go">'Mon Mar 11 00:00:00 2002'</span>1124<span class="gp">>>> </span><span class="s1">'The </span><span class="si">{1}</span><span class="s1"> is {0:</span><span class="si">%d</span><span class="s1">}, the </span><span class="si">{2}</span><span class="s1"> is {0:%B}.'</span><span class="o">.</span><span class="n">format</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="s2">"day"</span><span class="p">,</span> <span class="s2">"month"</span><span class="p">)</span>1125<span class="go">'The day is 11, the month is March.'</span>1126 1127<span class="gp">>>> </span><span class="c1"># Methods for extracting 'components' under different calendars</span>1128<span class="gp">>>> </span><span class="n">t</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">timetuple</span><span class="p">()</span>1129<span class="gp">>>> </span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">t</span><span class="p">:</span>1130<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>1131<span class="go">2002 # year</span>1132<span class="go">3 # month</span>1133<span class="go">11 # day</span>1134<span class="go">0</span>1135<span class="go">0</span>1136<span class="go">0</span>1137<span class="go">0 # weekday (0 = Monday)</span>1138<span class="go">70 # 70th day in the year</span>1139<span class="go">-1</span>1140<span class="gp">>>> </span><span class="n">ic</span> <span class="o">=</span> <span class="n">d</span><span class="o">.</span><span class="n">isocalendar</span><span class="p">()</span>1141<span class="gp">>>> </span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">ic</span><span class="p">:</span>1142<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>1143<span class="go">2002 # ISO year</span>1144<span class="go">11 # ISO week number</span>1145<span class="go">1 # ISO day number ( 1 = Monday )</span>1146 1147<span class="gp">>>> </span><span class="c1"># A date object is immutable; all operations produce a new object</span>1148<span class="gp">>>> </span><span class="n">d</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">year</span><span class="o">=</span><span class="mi">2005</span><span class="p">)</span>1149<span class="go">datetime.date(2005, 3, 11)</span>1150</pre></div>1151</div>1152</section>1153</section>1154<section id="datetime-objects">1155<span id="datetime-datetime"></span><h2><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> objects<a class="headerlink" href="#datetime-objects" title="Link to this heading">¶</a></h2>1156<p>A <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> object is a single object containing all the information1157from a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> object and a <a class="reference internal" href="#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a> object.</p>1158<p>Like a <a class="reference internal" href="#datetime.date" title="datetime.date"><code class="xref py py-class docutils literal notranslate"><span class="pre">date</span></code></a> object, <a class="reference internal" href="#datetime.datetime" title="datetime.datetime"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> assumes the current Gregorian1159calendar extended in both directions; like a <a class="reference internal" href="#datetime.time" title="datetime.time"><code class="xref py py-class docutils literal notranslate"><span class="pre">time</span></code></a> object,1160<code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code> assumes there are exactly 3600*24 seconds in every day.</p>1161<p>Constructor:</p>1162<dl class="py class">1163<dt class="sig sig-object py" id="datetime.datetime">1164<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">datetime</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">year</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">month</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">day</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hour</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">minute</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">second</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">microsecond</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">tzinfo</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="keyword-only-separator o"><abbr title="Keyword-only parameters separator (PEP 3102)"><span class="pre">*</span></abbr></span></em>, <em class="sig-param"><span class="n"><span class="pre">fold</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.datetime" title="Link to this definition">¶</a></dt>1165<dd><p>The <em>year</em>, <em>month</em> and <em>day</em> arguments are required. <em>tzinfo</em> may be <code class="docutils literal notranslate"><span class="pre">None</span></code>, or an1166instance of a <a class="reference internal" href="#datetime.tzinfo" title="datetime.tzinfo"><code class="xref py py-class docutils literal notranslate"><span class="pre">tzinfo</span></code></a> subclass. The remaining arguments must be integers1167in the following ranges:</p>1168<ul class="simple">1169<li><p><code class="docutils literal notranslate"><span class="pre">MINYEAR</span> <span class="pre"><=</span> <span class="pre">year</span> <span class="pre"><=</span> <span class="pre">MAXYEAR</span></code>,</p></li>1170<li><p><code class="docutils literal notranslate"><span class="pre">1</span> <span class="pre"><=</span> <span class="pre">month</span> <span class="pre"><=</span> <span class="pre">12</span></code>,</p></li>1171<li><p><code class="docutils literal notranslate"><span class="pre">1</span> <span class="pre"><=</span> <span class="pre">day</span> <span class="pre"><=</span> <span class="pre">number</span> <span class="pre">of</span> <span class="pre">days</span> <span class="pre">in</span> <span class="pre">the</span> <span class="pre">given</span> <span class="pre">month</span> <span class="pre">and</span> <span class="pre">year</span></code>,</p></li>1172<li><p><code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre"><=</span> <span class="pre">hour</span> <span class="pre"><</span> <span class="pre">24</span></code>,</p></li>1173<li><p><code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre"><=</span> <span class="pre">minute</span> <span class="pre"><</span> <span class="pre">60</span></code>,</p></li>1174<li><p><code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre"><=</span> <span class="pre">second</span> <span class="pre"><</span> <span class="pre">60</span></code>,</p></li>1175<li><p><code class="docutils literal notranslate"><span class="pre">0</span> <span class="pre"><=</span> <span class="pre">microsecond</span> <span class="pre"><</span> <span class="pre">1000000</span></code>,</p></li>1176<li><p><code class="docutils literal notranslate"><span class="pre">fold</span> <span class="pre">in</span> <span class="pre">[0,</span> <span class="pre">1]</span></code>.</p></li>1177</ul>1178<p>If an argument outside those ranges is given, <a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal notranslate"><span class="pre">ValueError</span></code></a> is raised.</p>1179<div class="versionchanged">1180<p><span class="versionmodified changed">Changed in version 3.6: </span>Added the <em>fold</em> parameter.</p>1181</div>1182</dd></dl>1183 1184<p>Other constructors, all class methods:</p>1185<dl class="py method">1186<dt class="sig sig-object py" id="datetime.datetime.today">1187<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">today</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#datetime.datetime.today" title="Link to this definition">¶</a></dt>1188<dd><p>Return the current local date and time, with <a class="reference internal" href="#datetime.datetime.tzinfo" title="datetime.datetime.tzinfo"><code class="xref py py-attr docutils literal notranslate"><span class="pre">tzinfo</span></code></a> <code class="docutils literal notranslate"><span class="pre">None</span></code>.</p>1189<p>Equivalent to:</p>1190<div class="highlight-python3 notranslate"><div class="highlight"><pre><span></span><span class="n">datetime</span><span class="o">.</span><span class="n">fromtimestamp</span><span class="p">(</span><span class="n">time</span><span class="o">.</span><span class="n">time</span><span class="p">())</span>1191</pre></div>1192</div>1193<p>See also <a class="reference internal" href="#datetime.datetime.now" title="datetime.datetime.now"><code class="xref py py-meth docutils literal notranslate"><span class="pre">now()</span></code></a>, <a class="reference internal" href="#datetime.datetime.fromtimestamp" title="datetime.datetime.fromtimestamp"><code class="xref py py-meth docutils literal notranslate"><span class="pre">fromtimestamp()</span></code></a>.</p>1194<p>This method is functionally equivalent to <a class="reference internal" href="#datetime.datetime.now" title="datetime.datetime.now"><code class="xref py py-meth docutils literal notranslate"><span class="pre">now()</span></code></a>, but without a1195<code class="docutils literal notranslate"><span class="pre">tz</span></code> parameter.</p>1196</dd></dl>1197 1198<dl class="py method">1199<dt class="sig sig-object py" id="datetime.datetime.now">1200<em class="property"><span class="k"><span class="pre">classmethod</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">datetime.</span></span><span class="sig-name descname"><span class="pre">now</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">tz</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#datetime.datetime.now" title="Link to this definition">¶</a></dt>