Python 中处理日期和时间的模块 àì夳堔傛蜴生んèń 2024-03-31 17:53 27阅读 0赞 时间无疑是生活各个方面中最关键的因素之一,因此,记录和跟踪时间变得非常重要。在 Python 中,可以通过其内置库跟踪日期和时间。 Python 提供了`time`和`datetime`模块,可以帮助我们轻松获取和修改日期和时间,下面让我们来逐一了解一下。 #### time 模块 #### 该模块包括使用时间执行各种操作所需的所有与时间相关的功能,它还允许我们访问多种用途所需的时钟类型。 **内置函数:** 请看下表,它描述了时间模块的一些重要内置功能。 <table> <tbody> <tr> <th>function</th> <th>Description</th> </tr> <tr> <td>time()</td> <td>返回自epoch以来经过的秒数</td> </tr> <tr> <td>ctime()</td> <td>以经过的秒数作为参数,返回当前日期和时间</td> </tr> <tr> <td>sleep()</td> <td>在给定的持续时间内停止线程的执行</td> </tr> <tr> <td>time.struct_time Class</td> <td>函数要么将此类作为参数,要么将其作为输出返回</td> </tr> <tr> <td>localtime()</td> <td>以自epoch以来经过的秒数作为参数,并以时间形式返回日期和时间。struct_time格式</td> </tr> <tr> <td>gmtime()</td> <td>与localtime()类似,返回时间。UTC格式的struct_time</td> </tr> <tr> <td>mktime()</td> <td>ocaltime()的倒数。获取包含9个参数的元组,并返回自epoch pas输出以来经过的秒数</td> </tr> <tr> <td>asctime()</td> <td>获取包含9个参数的元组,并返回表示相同参数的字符串</td> </tr> <tr> <td>strftime()</td> <td>获取包含9个参数的元组,并根据使用的格式代码返回表示相同参数的字符串</td> </tr> <tr> <td>strptime()</td> <td>分析字符串并及时返回。struct_time格式</td> </tr> </tbody> </table> **代码格式化:** 在用示例解释每个函数之前,先看一下所有合法的格式化代码的方式: <table> <tbody> <tr> <th>Code</th> <th>Description</th> <th>Example</th> </tr> <tr> <td>%a</td> <td>Weekday (short version)</td> <td>Mon</td> </tr> <tr> <td>%A</td> <td>Weekday (full version)</td> <td>Monday</td> </tr> <tr> <td>%b</td> <td>Month (short version)</td> <td>Aug</td> </tr> <tr> <td>%B</td> <td>Month (full version)</td> <td>August</td> </tr> <tr> <td>%c</td> <td>Local date and time version</td> <td>Tue Aug 23 1:31:40 2019</td> </tr> <tr> <td>%d</td> <td>Depicts the day of the month (01-31)</td> <td>07</td> </tr> <tr> <td>%f</td> <td>Microseconds</td> <td>000000-999999</td> </tr> <tr> <td>%H</td> <td>Hour (00-23)</td> <td>15</td> </tr> <tr> <td>%I</td> <td>Hour (00-11)</td> <td>3</td> </tr> <tr> <td>%j</td> <td>Day of the year</td> <td>235</td> </tr> <tr> <td>%m</td> <td>Month Number (01-12)</td> <td>07</td> </tr> <tr> <td>%M</td> <td>Minutes (00-59)</td> <td>44</td> </tr> <tr> <td>%p</td> <td>AM / PM</td> <td>AM</td> </tr> <tr> <td>%S</td> <td>Seconds (00-59)</td> <td>23</td> </tr> <tr> <td>%U</td> <td>Week number of the year starting from Sunday (00-53)</td> <td>12</td> </tr> <tr> <td>%w</td> <td>Weekday number of the week</td> <td>Monday (1)</td> </tr> <tr> <td>%W</td> <td>Week number of the year starting from Monday (00-53)</td> <td>34</td> </tr> <tr> <td>%x</td> <td>Local date</td> <td>06/07/22</td> </tr> <tr> <td>%X</td> <td>Local time</td> <td>12:30:45</td> </tr> <tr> <td>%y</td> <td>Year (short version)</td> <td>22</td> </tr> <tr> <td>%Y</td> <td>Year (full version)</td> <td>2022</td> </tr> <tr> <td>%z</td> <td>UTC offset</td> <td>+0100</td> </tr> <tr> <td>%Z</td> <td>Timezone</td> <td>CST</td> </tr> <tr> <td>%%</td> <td>% Character</td> <td>%</td> </tr> </tbody> </table> struct\_time 类具有以下属性: <table> <tbody> <tr> <th>Attribute</th> <th>Value</th> </tr> <tr> <td>tm_year</td> <td>0000, .., 2019, …, 9999</td> </tr> <tr> <td>tm_mon</td> <td>1-12</td> </tr> <tr> <td>tm_mday</td> <td>1-31</td> </tr> <tr> <td>tm_hour</td> <td>0-23</td> </tr> <tr> <td>tm_min</td> <td>0-59</td> </tr> <tr> <td>tm_sec</td> <td>0-61</td> </tr> <tr> <td>tm_wday</td> <td>0-6 (Monday is 0)</td> </tr> <tr> <td>tm_yday</td> <td>1-366</td> </tr> <tr> <td>tm_isdst</td> <td>0, 1, -1 (daylight savings time, -1 when unknown)</td> </tr> </tbody> </table> 现在让我们看几个 `time` 模块的例子 #### 使用time模块查找日期和时间 #### 使用上表中描述的内置函数和格式化代码,可以在 Python 中轻松获取日期和时间。 <table> <tbody> <tr> <td> <p>1</p> <p>2</p> <p>3</p> <p>4</p> <p>5</p> <p>6</p> <p>7</p> <p>8</p> <p>9</p> <p>10</p> <p>11</p> <p>12</p> <p>13</p> <p>14</p> <p>15</p> <p>16</p> <p>17</p> <p>18</p> <p>19</p> <p>20</p> <p>21</p> <p>22</p> <p>23</p> <p>24</p> <p>25</p> <p>26</p> <p>27</p> <p>28</p> <p>29</p> <p>30</p> <p>31</p> <p>32</p> </td> <td> <p><code>import</code> <code>time</code></p> <p><code>#time</code></p> <p><code>a</code><code>=</code><code>time.time() </code><code>#total seconds since epoch</code></p> <p><code>print</code><code>(</code><code>"Seconds since epoch :"</code><code>,a,end</code><code>=</code><code>'n----------n'</code><code>)</code></p> <p><code>#ctime</code></p> <p><code>print</code><code>(</code><code>"Current date and time:"</code><code>)</code></p> <p><code>print</code><code>(time.ctime(a),end</code><code>=</code><code>'n----------n'</code><code>) </code></p> <p><code>#sleep</code></p> <p><code>time.sleep(</code><code>1</code><code>) </code><code>#execution will be delayed by one second</code></p> <p><code>#localtime</code></p> <p><code>print</code><code>(</code><code>"Local time :"</code><code>)</code></p> <p><code>print</code><code>(time.localtime(a),end</code><code>=</code><code>'n----------n'</code><code>)</code></p> <p><code>#gmtime</code></p> <p><code>print</code><code>(</code><code>"Local time in UTC format :"</code><code>)</code></p> <p><code>print</code><code>(time.gmtime(a),end</code><code>=</code><code>'n-----------n'</code><code>)</code></p> <p><code>#mktime</code></p> <p><code>b</code><code>=</code><code>(</code><code>2019</code><code>,</code><code>8</code><code>,</code><code>6</code><code>,</code><code>10</code><code>,</code><code>40</code><code>,</code><code>34</code><code>,</code><code>1</code><code>,</code><code>218</code><code>,</code><code>0</code><code>)</code></p> <p><code>print</code><code>(</code><code>"Current Time in seconds :"</code><code>)</code></p> <p><code>print</code><code>( time.mktime(b),end</code><code>=</code><code>'n----------n'</code><code>)</code></p> <p><code>#asctime</code></p> <p><code>print</code><code>(</code><code>"Current Time in local format :"</code><code>)</code></p> <p><code>print</code><code>( time.asctime(b),end</code><code>=</code><code>'n----------n'</code><code>)</code></p> <p><code>#strftime</code></p> <p><code>c </code><code>=</code> <code>time.localtime() </code><code># get struct_time</code></p> <p><code>d </code><code>=</code> <code>time.strftime(</code><code>"%m/%d/%Y, %H:%M:%S"</code><code>, c)</code></p> <p><code>print</code><code>(</code><code>"String representing date and time:"</code><code>)</code></p> <p><code>print</code><code>(d,end</code><code>=</code><code>'n----------n'</code><code>)</code></p> <p><code>#strptime</code></p> <p><code>print</code><code>(</code><code>"time.strptime parses string and returns it in struct_time format :n"</code><code>)</code></p> <p><code>e </code><code>=</code> <code>"06 AUGUST, 2019"</code></p> <p><code>f </code><code>=</code> <code>time.strptime(e, </code><code>"%d %B, %Y"</code><code>)</code></p> <p><code>print</code><code>(f)</code></p> </td> </tr> </tbody> </table> Output: > Seconds since epoch : 1565070251.7134922 > ———- > Current date and time: > Tue Aug 6 11:14:11 2019 > ———- > Local time : > time.struct\_time(tm\_year=2019, tm\_mon=8, tm\_mday=6, tm\_hour=11, tm\_min=14, tm\_sec=11, tm\_wday=1, tm\_yday=218, tm\_isdst=0) > ———- > Local time in UTC format : > time.struct\_time(tm\_year=2019, tm\_mon=8, tm\_mday=6, tm\_hour=5, tm\_min=44, tm\_sec=11, tm\_wday=1, tm\_yday=218, tm\_isdst=0) > ———– > Current Time in seconds : > 1565068234.0 > ———- > Current Time in local format : > Tue Aug 6 10:40:34 2019 > ———- > String representing date and time: > 08/06/2019, 11:14:12 > ———- > time.strptime parses string and returns it in struct\_time format : > > time.struct\_time(tm\_year=2019, tm\_mon=8, tm\_mday=6, tm\_hour=0, tm\_min=0, tm\_sec=0, tm\_wday=1, tm\_yday=218, tm\_isdst=-1) ### datetime 模块 ### 与`time`模块类似,`datetime`模块包含处理日期和时间所必需的所有方法。 **内置功能:** 下表介绍了本模块中的一些重要功能: <table> <tbody> <tr> <th>function</th> <th>Description</th> </tr> <tr> <td>datetime()</td> <td>datetime 的构造函数</td> </tr> <tr> <td>datetime.today()</td> <td>返回当前本地日期和时间</td> </tr> <tr> <td>datetime.now()</td> <td>返回当前本地日期和时间</td> </tr> <tr> <td>date()</td> <td>以年、月、日为参数,创建相应的日期</td> </tr> <tr> <td>time()</td> <td>以小时、分钟、秒、微秒和tzinfo作为参数,并创建相应的日期</td> </tr> <tr> <td>date.fromtimestamp()</td> <td>转换秒数以返回相应的日期和时间</td> </tr> <tr> <td>timedelta()</td> <td>它是不同日期或时间之间的差异(持续时间)</td> </tr> </tbody> </table> #### 使用 datetime 查找日期和时间 #### 现在,让我们尝试实现这些函数,以使用`datetime`模块在 Python 中查找日期和时间。 来源:[https://www.weidianyuedu.com][https_www.weidianyuedu.com] [https_www.weidianyuedu.com]: https://www.weidianyuedu.com
还没有评论,来说两句吧...